未读消息依靠 XMPP

Unread messages count on XMPP

我正在使用 MongooseIM 开发一个基于 XMPP 的聊天应用程序,我正在尝试在我的应用程序中实现未读消息的数量。

我正在使用 XEP-0022 (Message Events) to track when a message is received from the server, received from the client, seen from the other client and XEP-0430 (Inbox) 来跟踪我从 MAM 检索到的未读消息。

我的主要问题是,当从收件箱请求邮件时,它 returns 所有邮件 而不是只有文字的。澄清一下:它 returns 还发送消息以确认收到消息以及所有中间消息,从而增加未读计数器并使其变得非常不现实。

我该怎么做才能解决这个问题?

您可以使用 XEP-0333: Chat Markers 而不是 XEP-0022(标记为已过时)来传递 delivery/read 状态。 MongooseIM Inbox 知道 XEP-0333 标记并且不会将它们计入未读消息总数。如果您可以控制正在使用的 XMPP 扩展,这是最简单的选择。