关于融云在APIcloud中的集成
来源:互联网 发布:淘宝模特招聘是真的吗 编辑:程序博客网 时间:2024/06/05 13:25
个人理解的简单的即时通讯的实现流程
1、A做出发送消息给B的动作
2、B收到A发来的消息
3、通过聊天的窗口显示出来
下面的步骤可以省略
4、B返回A一个已经查看的消息
5、A收到B已经查看的消息通过聊天的窗口显示出来
实现这个流程的基础要素
1、AB双方的融云模块都应经打开,并且网络连接没有问题。
2、AB双方都已经是融云的用户,取得融云的token。
3、连接融云的服务器
在程序中的操作如下:
服务端:配置获取融云token的程序
客户端:
1、配置融云的参数
在 config.xml 中设置内容如下:
<feature name="rongCloud2"> <param name="appKey" value="此处填写 App Key 值" /></feature>
2、对融云进行初始化
init(callback(ret, err))
var rong = api.require('rongCloud2');rong.init(function(ret, err){ if (ret.status == 'error') api.toast({ msg: err.code });});
返回值的代码如下
{ status: 'success', // 状态码:success / error}//错误的返回码{ code: -10002 // 错误码}
3、监听连接状态
setConnectionStatusListener(callback(ret, err))
var rong = api.require('rongCloud2');// 之前调用 init 的代码省略rong.setConnectionStatusListener(function(ret, err){ api.toast({ msg: ret.result.connectionStatus });});// 之后调用 connect 的代码省略
返回值如下
{ result: { connectionStatus: 'CONNECTED' // 连接状态 //取值范围 //CONNECTED // 连接成功 //CONNECTING // 连接中 //DISCONNECTED // 断开连接 //KICKED // 用户账户在其他设备登录,本机会被踢掉线 //NETWORK_UNAVAILABLE // 网络不可用 //SERVER_INVALID // 服务器异常或无法连接 //TOKEN_INCORRECT // Token 不正确 }}
4、监听所有消息(根据文档规定是在connect之前调用)
所有接收到的消息、通知、状态都经由此处设置的监听器处理。包括私聊消息、讨论组消息、群组消息、聊天室消息以及各种其他消息、通知、状态等
setOnReceiveMessageListener(callback(ret, err))
var rong = api.require('rongCloud2');// 之前调用 init 的代码省略rong.setOnReceiveMessageListener(function (ret, err) { api.toast({ msg: JSON.stringify(ret.result.message) }); api.toast({ msg: ret.result.message.left });})// 之后调用 connect 的代码省略
返回值特别注意下
{ result: { message: { content: { text: 'Hello world!', extra: '' }, // 消息内容 conversationType: 'PRIVATE', // 参见 会话类型 枚举 messageDirection: 'SEND', // 消息方向:SEND 或者 RECEIVE targetId: '55', // 这里对应消息发送者的 userId objectName: 'RC:TxtMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息 sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILED senderUserId: '55', // 发送者 userId messageId: 608, // 本地消息 Id sentTime: 1418971531533, // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数 receivedTime: 0 // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数 }, left: 0 // 剩余未拉取的消息数目 }}
5、连接融云 IM 服务器
connect({params}, callback(ret, err))
这里就需要传递参数了,参数只有一个token,用于服务器识别当前登录的账号,并返回账号的ID
var rong = api.require('rongCloud2');rong.init(function(ret, err){ if (ret.status == 'error') api.toast({ msg: err.code });});rong.connect({ token: 'ThptTWyiPPPvZHvuSiuri82yq+hfEluLjZ78E1qo4hEVSFQNpqdoPu406urMWKN4Z3/olWR+v9JVLAwfOQoLrA=="}, function(ret, err){ if (ret.status == 'success') api.toast({ msg: ret.result.userId });});
返回值
{ status: 'success', // 状态码:success / error result: { userId: '9527' // 当前登录的用户 Id }}
集成到这里,通过写死一个发送的函数。固定发送给用户B,这是登录用户B的手机就会收到发送的消息。可以通过打印出来观摩一下。至此融云的集成基本完成一半了。
接下来我会写一下怎么把接收到的数据展示到聊天界面。
- 关于融云在APIcloud中的集成
- APICloud平台的融云2.0集成
- apicloud融云模块文档笔记
- 关于ueditor在javaweb项目中的集成
- 关于APIcloud中的登录与注册的简单实现
- apicloud 请删除手机中的apploader后在尝试
- apicloud 请删除手机中的apploader后在尝试
- 关于apicloud开发注意事项
- APICloud平台的融云2.0优化
- APICloud
- APICloud
- birt在Spring中的集成
- sonarqube在vs2013中的集成
- STLport在vc6中的集成
- maven在myeclipse10中的集成
- Kotlin在IDE中的集成
- apicloud关于mcm的简单应用
- 关于git的具体使用教程以及在Xcode中的集成
- Sencha Touch 解决 button tap事件 按下和弹起 两次响应
- 《Groovy程序设计》读书笔记之第二部分 面向Java开发者的Groovy(下)
- Android串口操作
- 【LightOJ - 1058】Parallelogram Counting
- codeforces-508C -鬼吹灯(巧妙模拟)
- 关于融云在APIcloud中的集成
- 实习杂记(33):surfaceTexture 和 surfaceview 的区别
- jQuery-1
- 基于mysql5.6实现的同城多IDC间的mysql部分库表数据复制方案
- 缓存的理解
- 文章标题
- uva 12657
- 王爽《汇编语言》实验14——访问CMOS RAM
- 判断正数,正则