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
写到这里,整体思想上的认识我想你应该有了解了,接下来,还等什么,去官网看文档实践去吧。
阅读全文
0 0
- RongCloud(IM)浅析篇
- IM
- IM
- IM
- IM
- IM
- 第三方SDK:RongCloud IMKit实现简单的单人会话
- Android apps浅析02-Android IM:一个类似手机QQ的即时通讯开源实现
- 原创:Im计划书之概念篇
- 我的IM - 基础篇[1] - Socket
- 我的IM - 基础篇[2] - 基于UDP通讯的IM设计[开篇]
- 如何在App中实现IM功能之一离线消息常见浅析——箭扣科技Arrownock
- 《程序员的IM之路(一) 基础篇》
- 关闭IM
- IM Terminator?
- IM发展史
- IM 集锦
- Web IM
- 6.0以上手机运行时权限第三方PermissionsDispatcher的使用
- Java中native关键字
- 【旧资料整理】C++ 用typeinfo头文件输出变量类型
- strcpy和memcpy的区别
- [Linux]ARP协议
- RongCloud(IM)浅析篇
- 分类器性能指标之ROC曲线、AUC值
- 数据库连接池(1)简介
- 怎么准备年后的实习生
- 基于Netty4的HttpServer和HttpClient的简单实现
- java线程池的理解
- Linux 文件权限
- 【Java】线程常用方法
- java多线程编程