关于融云在APIcloud中的集成
个人理解的简单的即时通讯的实现流程
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 或者 RECEIVEtargetId: '55', // 这里对应消息发送者的 userIdobjectName: 'RC:TxtMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILEDsenderUserId: '55', // 发送者 userIdmessageId: 608, // 本地消息 IdsentTime: 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 / errorresult:{userId: '9527' // 当前登录的用户 Id}
}
集成到这里,通过写死一个发送的函数。固定发送给用户B,这是登录用户B的手机就会收到发送的消息。可以通过打印出来观摩一下。至此融云的集成基本完成一半了。
接下来我会写一下怎么把接收到的数据展示到聊天界面。
关于融云在APIcloud中的集成相关推荐
- ios 融云 重写对话列表_iOS集成融云SDK part 1 小记
之前虽然稍微了解过即时通讯方面的内容,但是一直没有怎么去做过聊天部分的.这次是刚刚使用融云,做一下记录. 关于融云SDK集成的具体步骤,我都是参考以下这些文章(很多图片都是直接从这些地方拿的,我真是太 ...
- 融云IM SDK web 端集成 — 表情采坑篇
公司集成 IM 使用的是融云的 IM SDK,我们有移动端,有 web 端,移动端同事集成表情时还是蛮顺利的貌似移动端 SDK 里就支持,一切都很顺理成章的样子,web 端就有些棘手了.web 端的表 ...
- android.intent.action.view 融云,Android 融云SDK集成单聊
一 .下载 SDK 您可以到融云官方网站下载融云 SDK.融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载.各组件的功能如下: IMKit – 融云 IM 界面组 ...
- android 融云sdk集成,使用融云SDK集成
使用融云开始还是遇到了很多的坑的,特别是看不太明白官方文档.或许自己不够有耐心. 期间还遇到了许多bug,比如,明明配置的没问题了,可我的手机还是连不上融云. 后来还是在融云的知识库中找到了解决办法, ...
- 融云 SDK 集成详解 – Android Studio
一 .下载 SDK 您可以到融云官方网站下载融云 SDK.融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载.各组件的功能如下: IMKit – 融云 IM 界面组 ...
- 集成融云直播聊天室(官方集成以及自我总结)
近期做直播,当然,直播当然就要做到聊天室,聊天室选择的是融云聊天直播室 首先 官方集成 如下: IMLib SDK 集成说明 下载 IMLib SDK:点击下载 SDK 目录结构说明: libs 目录 ...
- 融云android sdk文档,使用融云SDK集成
使用融云开始还是遇到了很多的坑的,特别是看不太明白官方文档.或许自己不够有耐心. 期间还遇到了许多bug,比如,明明配置的没问题了,可我的手机还是连不上融云. 后来还是在融云的知识库中找到了解决办法, ...
- android 融云群组列表,群组中 @ 功能介绍
从 2.6.8 版本开始,在群组中实现了 @ 功能,可以通过 @ 指定的用户或 @ 所有用户,提醒被 @ 的人,有关于你的消息内容,融云在 IMKit 中已经对 @ 功能进行封装,默认为关闭状态,开 ...
- 杨攀:融云专注极致技术 不忘初心打造极简体验
本文是融云联合创始人.CTO杨攀接受 LiveVideoStack 邮件采访整理而成,杨攀聊到了个人成长经历,作为创业公司技术负责人的责任,以及对企业通信市场的格局和未来的机遇与挑战. 文 / 杨攀 ...
最新文章
- 松下服务器分频器输出信号与,基础资料松下PANASONIC伺服驱动器MADHT1507E
- [转载]Memcache内存临界测试
- 纯css改变下拉列表select框的默认样式
- JS关闭浏览器 (不弹出提示框)
- 若川邀你进 源码共读 群~长期交流学习
- 更改linux子系统软件源为国内镜像
- javafx做的天气预报小程序
- Node.js babel
- 银河水滴张曼:远距离步态识别系统与应用 |量子位沙龙回顾
- Golang go 命令
- Unity3D 多平台_预编译相关宏定义
- 探索科学的奥秘之门Science,Cell, Nature
- javascript调试 debugger 代码调试
- Python学习 -元组和集合
- Solr6适配自定义升级版mmseg4j
- 幕后产品_版本控制:幕后
- Python基础 by.肖洪福
- vscode win10笔记本 蓝屏_教你win10电脑蓝屏原因排查及解决方法大全
- 计算机论文答辩代码讲解,计算机专业毕业论文答辩的程序讲解
- CopyWebpackPlugin的ignore