客户端架构

客户端架构介绍

客户端和IM服务端交互,本地数据存储和同步,消息、事件回调。

小苹果IM 分为三层:网络层、逻辑层、存储层。分层治理,各司其职,实现高效、稳定、统一的客户端架构。

(1)网络层:负责和服务端保持 websocket 连接、断网重连,接收消息推送,以确保在线时消息以及各种事件能实时达到。负责初始登录是、重连时数据补齐,通过对比本地 seq 和服务端最大seq,同步拉取差值消息或事件,确保客户端和服务端达到最终一致的状态。

(2)逻辑层:针对主动调用接口和事件被动触发,对接网络层和存储层,实现业务细节,根据逻辑完成与 UI 之间的回调。

(3)存储层:存储本地和服务端的数据同步,包括会话、消息、事件、通讯录、群组等,对外提供的数据 get接口,通过本地数据库获取,实现了无网络情况下能查看消息等本地数据,同时也能有效缓解服务端的压力,达到了数据同步和缓存的双重目的。

小苹果涉及的接口集成介绍

小苹果IM架设集成非常简单,由于用户私有化部署,代码、配置、数据都在自家服务器上,不用向云平台申请 AppKey 和 Secret,相比第三方IM云服务,可见小苹果IM更安全、可控、自由度更高。