更新时间: 2020-04-08
# 基础架构介绍
融云提供的即时通讯服务,不需要在 App 之外建立并行的用户体系,不用同步 App 下用户信息到融云,不影响 App 现有的系统架构与帐号体系,与现有业务体系能够实现完美融合。
融云的架构设计上具有如下特点:
- 无需改变现有 App 的架构,直接嵌入现有代码框架中;
- 无需改变现有 App Server 的架构,独立部署一份用于用户授权的 Service 即可;
- 专注于提供通讯能力,使用私有的二进制通信协议,消息轻量、有序、不丢消息;
- 安全的身份认证和授权方式,无需担心 SDK 能力滥用(盗用身份的垃圾消息、垃圾群发)问题。
说明:
- App 需要同 App Server 之间进行信息交互,如:获取用户数据、用户好友关系,融云不维护 App 的用户系统和好友关系;
- App Server 只需要和 RongCloud Server 进行身份授权,不需要提交详细用户资料及好友关系,开发者可根据自身的业务情况选择在应用加载或需要使用 IM 服务时进行授权。
- App 发送消息需要经过 RongCloud Server 转发给目标终端设备,因为目标用户的离线、通知等逻辑决定了消息必须经由服务器进行一次转发;
# SDK 体系架构
本文档将介绍融云的 SDK 产品架构和消息体系,以便开发者更深入的了解融云并更快速开发自己的产品。

由于IMKit依赖IMLib,所以其实IMLib中的全部能力,IMKit中都具备,如聊天室。
IMKit
IMKit SDK 是对融云 IM 即时通讯能力在 UI 界面的封装,方便开发者快速实现自己的产品,主要特点是支持快速集成,提供丰富的界面定制功能。
IMLib
IMLib SDK 提供基本通信能力库,封装了通信能力和 Conversation,Message 等各种对象,服务于需要根据自己的产品去自己实现界面的开发者。主要特点是封装清晰,轻量,便于使用。
Protocol
Protocol 是融云的核心协议栈,使用融云自定义的私有二进制协议。主要特点是是轻量化,有序可靠,不丢消息。Protocol 部分使用 Native 语言开发,在 Android 和 iOS 平台上保证业务一致性,便于开发者商用化自己的产品。
# SDK 集成流程
