RongCloud(IM)浅析篇
程序员文章站
2022-07-13 15:37:12
...
说到即时通讯,目前主流的有:融云和环信。本博客意在对融云整体有个认识和了解,仅仅为了加深对业务层的理解。
对融云有个整体的理解,具体需要真正的项目实践,方能真正的了解融云即时通讯。
融云为开发者提供了(截至当前):
客户端界面组件
客户端IM基础通讯能力库
WEB IM基础通讯能力库
服务端rest api
支持单聊 群聊 讨论组 聊天室 客服即时通讯等
消息类型:文字、表情、图片、语音、视频、地理位置、红包、实时音视频、
通知消息等消息类型(还可以自定义消息类型)
看到上面可以知道融云具体的基本服务是什么了,然后我们了解一下他们的技术架构。
不需要改变公司现有APP架构和App Server,融云只需要我们做的:
APP架构嵌入融云相关代码到app代码中
App Server独立部署一份用于用户授权的 Service 即可
看到融云的架构图,不难发现我们的客户端和服务端和融云服务器之间的关系,我们的
本地服务器存储我们即时通讯的用户数据和好友关系。融云服务器仅仅在消息传输上发挥作用,
客户端发送的消息需要经过融云服务器转发给用户。
橙色箭头表示您的应用服务器只需要和融云服务器进行身份授权,不需要您提交详细用户资料(这一句来自官方解释)
接下来了解高大上的融云IM SDK,融云 IM SDK 主要包括:IM 界面组件和 IM 通讯能力库。
融云把这些sdk以插件化的形式供开发者依据实际开发需求下载*组合使用。
- IMKit 界面组件(就是聊天界面啦,版面~)
- IMLib 通讯能力库(就是通讯技术支持的代码封装库~)
- CallKit 音视频界面组件(就是实现了音视频通话场景界面~)
- CallLib 融云音视频通话核心组件(音视频通话代码封装库~)
- LocationLib Android平台位置功能相关库文件
- PushLib 推送服务
- RedPacket 红包(融云红包相关组件,通过集成该组件,即可快速实现红包功能~)
说了这么些,可以说实际功效并不是很大,我们看看具体业务吧。
单聊(1v1聊天,融云负责通信的连接保持,可以是好友可以是陌生人,融云不管好友关系,
这个交给我们本地服务器去维护,但app处于后台或者在进程中被杀死,则以推送通知的形式提示给用户)
群组聊天(群组用户信息由app管理维护,融云只负责把群里发送的消息传递给所有群成员,
app处于后台或者在进程中被杀死,则以推送通知的形式提示给用户)
讨论组(用户可以自行添加好友生成一个讨论组聊天)
聊天室(退出聊天室界面即视为退出聊天组,不再接收消息)
客服消息(意见反馈,以为解答之类的支持文字、图片、位置、语音、表情、图文等
消息类型,支持单客服和多客服服务,提供“机器人”和“人工”配合使用,
可设置“机器人”或者“人工”优先接待功能。)
音视频通话(指通过 IP 网络,使两个用户建立一对一、一对多的音视频通话。)
应用公众服务(为App开发者提供App内建公众服务能力,通过在融云开发者站点创建App公众号)
公众服务(在应用开发者和公众帐号运营者之间建立的对接平台,应用开发者可以通过平台引入公众服务资源)
会话列表(就可以理解为QQ的聊天消息列表,聊天室不在其中)
以上文字概念有的好理解,有的解释的很抽象,实际应用就好了。
即时通讯最主要的交互就是聊天界面了,会显示的信息一般有 聊天的对象名称
(群名称或者对方的昵称,也是你对聊天对象 的备注名称,有的话)
通知(搞清楚分为本地通知(Local Notification)和远程通知(Remote Notification)即可)
开发准备:(App Key / Secret)相当于您的 App 在融云的帐号和密码
融云提供了两套环境,开发环境和生产环境,前者是方便您集成开发和测试的,
Token,用户令牌,就是app当前用户连接融云的凭证。
每个用户连接服务器都需要一个 Token,用户更换即需要更换 Token。每次初始化连接服务器时,都需要向服务器提交 Token
写到这里,整体思想上的认识我想你应该有了解了,接下来,还等什么,去官网看文档实践去吧。
上一篇: 基于融云实现应用公众号