RongCloud(IM)浅析篇

来源:互联网 发布:山特维克刀具数据库 编辑:程序博客网 时间:2024/05/02 06:46

说到即时通讯,目前主流的有:融云和环信。本博客意在对融云整体有个认识和了解,仅仅为了加深对业务层的理解。
对融云有个整体的理解,具体需要真正的项目实践,方能真正的了解融云即时通讯。

融云为开发者提供了(截至当前):

客户端界面组件
客户端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

写到这里,整体思想上的认识我想你应该有了解了,接下来,还等什么,去官网看文档实践去吧。