1、引言
IM系统中,特别是在企业应用场景下,消息的已读未读状态是一个强需求。
以阿里的钉钉为例,钉钉的产品定位是用于商务交流,其“强制已读回执”功能,让职场人无法再“假装不在线”、“假装没收到”。更有甚者,钉钉的群聊“强制已读回执”功能,甚至能够知道谁读了消息,谁没有读消息(老板的福音啊)。
![7d55d4bf6db7a92b14dd458bafefcae3.png](https://i-blog.csdnimg.cn/blog_migrate/e00132d30be646ebf958d63bce62351c.jpeg)
▲ 钉钉里的群聊消息已读未读功能效果
功能看起来很酷,但用起来是一言难尽(上班族心里苦.... )。实际上,技术实现也并不容易。
那么,对于已读未读状态:
1)如果是私聊:消息的阅读状态比较容易实现,在性能和存储上也不存在问题;
2)如果是群聊:考虑到存储和处理性能,特别当处于一个云环境时,如何高效地处理群聊的已读未读状态是一个非常值得探讨的话题。
这里提到的“高效”含3个方面:
1)存储空间;
2)处理速度;
3)传输字节数。
本文将从服务端的角度来探讨已读未读状态,在具体的技术实现上对于存储空间占用方面的思路差异。能力有限,权当个人笔记,欢迎交流。
学习交流:
- 即时通讯/推送技术开发交流5群:215477170[推荐]
- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》
本文已同步发布于“即时通讯技术圈”公众号,链接是:
https://mp.weixin.qq.com/s/yUkKPOBsdqLlxiFrGmwFRQ
2、内容点评
在收录本文前,Jack Jiang建议原作者对某些具体的技术点进行更深入的分享,但因作者工作较忙,本文中的某些关键技术点未来的及作进一步展开。
所以,本文可以作为IM聊天消息(主要是群聊)中已读未读功能的基本实现思路方面的参考,但不建议盲目迷信文中的结论或方案,避免被一些不够具体的技术指标而误导。
3、相关文章
如果你还想了解更多有关IM群聊中已读未读功能的实现逻辑,可以进一步阅读干货文章《IM群聊消息的已读回执功能该怎么实现?》(强烈推荐)。
如果你对IM中的已读未读功能有产品方面的痛点困惑,可以参考一下微信对已读未读功能的设计定位,详见《IM热门功能思考:为什