【问题标题】:XMPP: count of unread messagesXMPP:未读消息计数
【发布时间】:2015-08-06 21:45:24
【问题描述】:

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

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

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

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

我可以使用 XMPP 实现这一目标吗?我该怎么做?

提前致谢。

【问题讨论】:

    标签: xmpp openfire ejabberd mongoose-im


    【解决方案1】:

    您要做的基本上是在您的帐户中存储一个看不见的东西的计数器。我认为您不需要灵活的离线检索,因为当您连接消息时,它们会变得不可见。因此,您只需处理一种情况:Unseen。

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

    【讨论】:

    • 好的,看来我的情况没有 XEP,对吧?所以我必须自己实现它。问题是我不熟悉 erlang,所以我应该为 Openfire 或一些 nodejs XMPP 服务器编写一个插件,因为我主要是 Java 和 Javascript 开发人员。
    • 是的,没有 XEP 定义了这种需求,所以它确实必须是自定义的。
    猜你喜欢
    • 1970-01-01
    • 2015-05-08
    • 2018-08-28
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多