【问题标题】:Detect XMPP Message is read/unread with Openfire使用 Openfire 检测 XMPP 消息已读/未读
【发布时间】:2017-01-06 07:20:24
【问题描述】:

我正在开发一个使用 XMPPFramework 和 Openfire Server 的聊天应用程序。有什么方法可以检测消息是已读还是未读? 我听说过 XEP-0184,但它只是消息传递(接收与否)。

【问题讨论】:

  • 不,这是不可能的:“阅读”一条消息意味着人类正在阅读一行,基本上只有人类才能确认。 Whatsapp 双重检查在服务器收到时为灰色,在目标设备上收到消息时为蓝色。
  • 哦,它是“已看到”,如 facebook 或 Skype,我想检查用户是否看到它(或显示在屏幕上)
  • 你需要一个自定义的 XMPP 扩展来支持这个。
  • 我当然同意@MickaëlRémond:自定义 XMPP 扩展在屏幕上显示时发出通知,这取决于实现
  • 问题解决了吗?

标签: ios xmpp chat openfire xmppframework


【解决方案1】:

当用户打开未读聊天时,我如何通过发送特殊消息来实现这一点。

当用户收到该特殊消息时,它会知道该消息已被其他用户阅读。

特殊消息应该是唯一的:这样您就可以检查是否收到它,这意味着消息已被阅读。

【讨论】:

    【解决方案2】:

    XEP-0184(交付收据)用于确保消息到达最终用户(用户在线)。对于显示通知,您可以使用 XEP-0085 (ChatStateEvent) 或 XEP-0022 (MessageEvent)。虽然 XEP-0022 已被弃用,但建议使用 XEP-0085。

    【讨论】:

    • 我认为 XEP-0085 无法解决我的问题。 XEP-0085 仅在消息发送之前通知消息状态(用户是否正在撰写)。我发现 XEP-0333 可能对我有帮助。我试试这个。
    • 好的。没关系:)
    • 我意识到 XEP-0333 用于在两个用户都在线时发送消息状态,archiveMessage 没有保存消息的状态,所以我找不到未读消息计数Fb 或 Skype 可以
    猜你喜欢
    • 2015-08-06
    • 1970-01-01
    • 2016-05-16
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 2021-09-05
    • 1970-01-01
    相关资源
    最近更新 更多