架构介绍

融云提供的即时消息传输服务,不在 App 之外建立并行的用户体系,不需要同步用户帐户,不影响 App 现有的系统架构与帐号体系,与现有业务体系能够实现完美融合。

融云的架构设计上具有如下特点:

  • 无需改变现有 App 的架构,直接嵌入现有代码框架中;
  • 无需改变现有 App Server 的架构,独立部署一份用于用户授权的 Service 即可;
  • 专注于提供通讯能力,使用私有的二进制通信协议,消息轻量、有序、不丢消息;
  • 安全的身份认证和授权方式,无需担心 SDK 能力滥用(盗用身份的垃圾消息、垃圾群发)问题。

图解:

  • 蓝色为应用(App)和应用服务器(App Server),用户数据(User Data)和用户好友关系(Friend Relationship Data)保存在您的应用服务器上,融云不需要同步 App 的用户系统和好友关系;
  • 绿色为融云服务器(RongCloud Server)和融云 SDK,支持快速集成和平滑迁移;
  • 蓝色箭头表示您自己的业务数据经由您自己的应用服务器;
  • 绿色箭头表示消息需要经过融云服务器转发(IM 的离线、通知等逻辑决定了消息必须经由服务器进行一次转发);
  • 橙色箭头表示您的应用服务器只需要和融云服务器进行身份授权,不需要您提交详细用户资料。

SDK 体系架构

本文档将详细介绍融云的 SDK 产品架构和消息体系,以便于您更深入的了解融云并更快速的开发自己的产品。

IMKit

IMKit 的功能主要是封装各种界面对象,服务于开发者快速实现自己的产品,主要特点是是支持快速集成,支持丰富的界面定制功能。

IMLib

IMLib 的功能是提供基本通信能力库,封装了通信能力和 Conversation,Message 等各种对象,服务于需要根据自己的产品去自己实现界面的开发者。主要特点是封装清晰,轻量,便于使用。

Protocol

Protocol 是融云的核心协议栈,使用融云自定义的私有二进制协议。主要特点是是轻量化,有序可靠,不丢消息。Protocol 部分使用 Native 语言开发,在 Android 和 iOS 平台上保证业务一致性,便于开发者商用化自己的产品。