XMPP:未读消息数
XMPP: count of unread messages
我正在尝试使用以下功能为我的网络应用程序实现聊天:
- 当用户登录时,他应该会看到一些未读消息(既是离线消息又是 "unseen",我将在下一步中解释 "unseen")。
- 当用户在应用程序的任何地方但不在聊天时 window 应该通知他有一条新消息。消息应标记为 "unseen",并且必须添加到未读消息计数中。
第一点很容易使用 XEP-0013 实现:灵活的离线消息检索。所以我可以检索离线消息,当我确定用户已经看到它们时 - 我将它们从未读列表中删除。但问题是:如何为 "unseen" 消息实现相同的目的?
简而言之,我需要的是:任何消息都应标记为离线,除非用户看到它并且已通过明确请求将其从列表中删除。
我可以使用 XMPP 实现吗?我该怎么做?
提前致谢。
您要做的基本上是在您的帐户中存储一个看不见的东西的计数器。我认为您不需要灵活的离线检索,因为当您连接消息时,它们只会变得看不见。因此你只需要处理一种情况:Unseen.
我会从ejabberd的角度来回答,我作为开发者之一更清楚:我会使用私有存储来存储你当前的不可见计数和会话状态。
我正在尝试使用以下功能为我的网络应用程序实现聊天:
- 当用户登录时,他应该会看到一些未读消息(既是离线消息又是 "unseen",我将在下一步中解释 "unseen")。
- 当用户在应用程序的任何地方但不在聊天时 window 应该通知他有一条新消息。消息应标记为 "unseen",并且必须添加到未读消息计数中。
第一点很容易使用 XEP-0013 实现:灵活的离线消息检索。所以我可以检索离线消息,当我确定用户已经看到它们时 - 我将它们从未读列表中删除。但问题是:如何为 "unseen" 消息实现相同的目的?
简而言之,我需要的是:任何消息都应标记为离线,除非用户看到它并且已通过明确请求将其从列表中删除。
我可以使用 XMPP 实现吗?我该怎么做?
提前致谢。
您要做的基本上是在您的帐户中存储一个看不见的东西的计数器。我认为您不需要灵活的离线检索,因为当您连接消息时,它们只会变得看不见。因此你只需要处理一种情况:Unseen.
我会从ejabberd的角度来回答,我作为开发者之一更清楚:我会使用私有存储来存储你当前的不可见计数和会话状态。