IM群聊消息已读未读功能如何实现
时间:2020-07-23 17:36
阅读:1525
IM系统中,消息的阅读状态或许是一个强需求。有消息即时通讯就从自身的经验,从服务端角度来探讨阅读状态。 那么,对于已读未读状态: 1)如果是私聊:消息的阅读状态比较容易实现,在性能和存储上也不存在问题; 2)如果是群聊:考虑到存储和处理性能,特别当处于一个云环境时,如何高效地处理群聊的已读未读状态是一个非常值得探讨的话题。“高效”包含3个方面:存储空间、处理速度、传输字节数。 客户端与服务端之间,关于阅读状态的是如何实现的呢 ? 1、通知消息已读(私聊、群聊通用) 当A阅读了一条或若干条消息,需向服务端发送消息已读通知:“其他群成员的x+y+z消息,A已阅”。 2、服务端收到A的已读回执时 存储消息的已读状态→返回应答给A→向已读列表的消息的原始发送者通知消息已读。 3、客户端处理 私聊-即发送给私聊的对方; 群聊-稍微复杂:因为A发送的已读消息列表,可能是由众爱卿发送的。考虑这种假设:B、C、D发出的群聊消息,被A一下都阅读了,那么A发出的已读通知包含的消息列表,需要被IMS分解成3个已读通知(3个不同的消息列表),分别通知给B、C、D,通知内容是“BCD发的这些消息,A已阅”。 有消息即时通讯系统,高并发,目前功能少,支持各类定制开发!