XMPP:未读消息的数量

时间:2015-05-25 11:59:10

标签: xmpp openfire ejabberd mongoose-im

我正在尝试使用以下功能实现我的webapp聊天:

  • 当用户登录时,他应该会看到许多未读消息(这些消息都是离线消息和“看不见”,我将在下一步中解释“看不见”)。
  • 当用户在应用程序的任何位置但在聊天窗口中时,应通知他有新消息。消息应标记为“看不见”,并且必须添加到未读消息的计数中。

使用XEP-0013很容易实现第一点:灵活的离线消息检索。所以我可以检索离线消息,当我确定用户已经看过它们时 - 我将它们从未读列表中删除。但问题是:如何为“看不见的”消息实现同样的目的?

简而言之,我需要的是:任何消息都应标记为离线,除非用户看到它并通过显式请求将其从列表中删除。

我能用XMPP实现这个目标吗?我该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您要做的是基本上在您的帐户中存储一些看不见的内容。我认为您不需要灵活的离线检索,因为当您连接消息时,这将简单地变得不可见。因此,您只需要处理一个案例:看不见。

我将从ejabberd的角度回答,我作为开发人员之一更了解:我会使用私有存储来存储您当前看不见的计数和对话状态。