# 《分布式IM系统》大后端平台-消息服务-第05节:单聊消息的已读流程设计和实现

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

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

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

大家好,我是冰河~~

在我们设计和开发的分布式IM即时通讯系统中,消息基本都会保存到服务器一段时间,并且用户与好友单聊时,发出消息后,会在自己的聊天框内显示消息未读,当好友查看消息后,就会显示为已读。这就需要我们实现当好友查看消息时,更新消息的状态为已读。

# 一、前言

在前面的文章中,我们已经设计和实现了单聊与群聊消息的发送流程,并且设计和实现了单聊与群聊消息的拉取流程。至此,对于大后端平台的消息微服务来说,已经完成了最核心,最基本的消息收发能力。但是,细细想来,似乎还有一些功能可以设计和实现的更加完善。

例如,用户向好友发送单聊消息,消息发出去后,如果他想看看好友到底有没有查看或者阅读发送的消息,那该如何实现呢?所以,接下来,我们就在消息微服务原有功能的基础上,对单聊消息已读的流程进行设计和实现。

# 二、本节诉求

对单聊消息的已读流程进行设计和实现,从源码级别掌握单聊消息的已读流程,重点理解用户接收到单聊消息后,单聊消息在整个分布式IM即时通讯系统中触发已读操作的流转过程,结合市面上已经比较成熟的具备消息未读和消息已读功能的即时通讯产品,例如钉钉,思考消息未读和消息已读背后的核心思想与落地方案,并结合自身实际项目思考,将本节学到的知识灵活应用到自身实际项目中。

# 三、流程设计

单聊消息的已读流程比较简单,具体如图5-1所示。


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

# 查看完整文章

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