# 《分布式IM系统》大后端平台-消息服务-第04节:群聊消息的拉取流程设计和实现

作者:冰河
星球: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/17sNbztDU (opens new window)

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

  • 本节难度:★★★☆☆
  • 本节重点:对群聊消息的拉取流程进行设计和实现,从源码级别掌握群聊消息的拉取流程,重点理解群聊消息在整个分布式IM即时通讯系统中的推送与拉取的流转过程,结合自身实际项目思考,将本节学到的知识灵活应用到自身实际项目中。
  • 课程视频:https://t.zsxq.com/17sNbztDU (opens new window)

大家好,我是冰河~~

在分布式IM即时通讯系统的设计中,对于群聊功能来说,消息的流转过程同样会分为消息的实时推送与消息的拉取操作,消息的实时推送主要针对群内的在线用户,而消息的拉取主要针对发消息时,群内有部分用户不在线,这些用户上线后,需要拉取离线消息,并且用户可以拉取全站群聊消息和某个群内的历史消息。

# 一、前言

在前面的文章中,我们已经设计和实现了单聊消息的拉取流程,并且从源码级别落地和实现了拉取未读消息的流程、拉取消息全站消息的流程和分页拉取与某个用户的聊天记录的流程。对于群聊消息来说,用户向某个群内发送消息时,不一定所有的群成员都在线,或者部分群成员刚好网络连接断开了,此时,这些用户上线后,或者与即时通讯后端服务重新建立连接后,需要将未及时收到的消息拉取下来。

# 二、本节诉求

对群聊消息的拉取流程进行设计和实现,从源码级别掌握群聊消息的拉取流程,实现拉取未读消息记录、拉取全站历史记录以及拉取与在某个群的聊天记录等功能。重点理解群聊消息在整个分布式IM即时通讯系统中的推送与拉取的流转过程。

# 三、流程设计

在大后端平台消息微服务的群聊消息的拉取流程设计中,主要包含:拉取未读消息的流程、拉取全站消息的流程和分页拉取在某个群的聊天记录的流程,具体如图4-1所示。


可以看到,整体流程还是比较简单的,主要涉及到用户、消息微服务、消息库、分布式缓存、群组微服务、即时通讯SDK、消息中间件、即时通讯后端服务等,

# 查看完整文章

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