# 《分布式IM系统》即时通讯SDK-第01节:发送单聊消息的流程设计与实现

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
课程视频:https://t.zsxq.com/15wTbdXXn (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本节难度:★★☆☆☆
  • 本节重点:对即时通讯SDK中发送单聊消息的流程进行设计和实现,掌握SDK类库的设计和实现方法,并将其灵活应用到自身实际项目中。
  • 课程视频:https://t.zsxq.com/15wTbdXXn (opens new window)

大家好,我是冰河~~

对于分布式IM即时通讯系统来说,即时通讯后端服务并不会与大后端平台或者其他业务系统进行交互,大后端平台或者其他业务系统会通过集成即时通讯SDK,调用即时通讯SDK中的方法将消息发送给消息中间件集群,即时通讯后端服务监听消息中间件中的消息,接收到消息后将消息推送给用户的终端。

# 一、前言

在分布式IM即时通讯系统的建设过程中,我们需要考虑这样一个问题:如何让分布式IM即时通讯系统与其他业务系统分离,并且在尽量不引入其他依赖的前提下,能够做到其他业务系统快速接入分布式IM即时通讯系统。一种方式就是分布式IM即时通讯系统提供对接接口,其他业务系统调用接口传递对应的参数。另一种方式就是分布式IM即时通讯系统提供即时通讯SDK,其他业务系统引入SDK包,调用对应的方法即可。

# 二、本节诉求

对即时通讯SDK中发送单聊消息的流程进行设计实现,对外提供统一发送单聊消息的接口,其他业务系统对接分布式IM即时通讯系统时,只需要引入即时通讯SDK,调用发送单聊消息接口,即可发送单聊消息。

# 三、流程设计

大后端平台或其他业务系统引入即时通讯SDK发送单聊消息的流程如图1-1所示。


可以看到,大后端平台或其他业务系统在引入即时通讯SDK后,通过即时通讯SDK发送单聊消息的流程如下所示。

(1)即时通讯SDK会先从分布式缓存中查询目标用户连接的IM即时通讯后端服务的ID。

(2)获取到目标用户连接的IM即时通讯后端服务的ID后,即时通讯SDK会向目标用户连接的IM即时通讯服务对应的消息中间件的Topic发送消息。

(3)目标用户连接的IM即时通讯后端服务会接收到对应的消息。

(4)IM即时通讯后端服务会向目标用户推送消息。

整体流程相对来说还是比较简单的。

# 四、类结构设计

即时通讯SDK发送单聊消息的类结构如图1-2所示。


# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章、小册、视频与完整代码