如何在 Openfire 上接收消息传递回执?

How to receive Message Delivery Receipts on Openfire?

如何在 Openfire 服务器上接收消息送达回执?

我希望收到以下状态的确认:

  1. Openfire 服务器收到消息时
  2. 接收方客户端收到消息时
  3. 当收件人已阅读邮件时。

简而言之,我想实现类似于 Whatsapp 的功能,如 PENDING、SINGLE TICK、DOUBLE TICK、BLUE DOUBLE TICK。

我知道,XMPP 确实支持此功能。 [XEP-0184]

多方查找,得知Openfire不支持XEP-0184。 问题 OF-434 已关闭并由 Openfire 社区标记为 Won't Fix

我还能如何实现这一目标?我不想迁移到另一台服务器!

在 OPENFIRE 上实现消息送达回执的替代解决方案是什么?

如果您仔细阅读了您提到的 Openfire 问题,您可能会注意到 the last comment of the issue gives the reason it was closed as "Won't Fix":

XEP-0184 has nothing to do with the server.

It is purely a client to client protocol and is well documented as to what that means with regards to not receiving receipts for message due to issues that may arise due to the server. There is nothing for the server to implement with this specification so I am closing it.

此外,XEP-184 仅描述了交付 收据的机制。它指定当服务器收到 ("acknowledges the receive") 消息或用户已阅读消息时不通知。

服务器对传入节的确认可以使用 XEP-198 流管理来完成,更详细的收据可以使用 XEP-333 聊天标记来完成。只有XEP-198需要服务器支持,另外两个XEP-184和XEP-333是纯客户端XEP。

正如 中所暗示的,OpenFire 实际上 确实 支持 XEP-0184,因为它会做所有它需要做的事情来启用 XMPP 客户端使用该协议。这涵盖了列表中的第 2 点(当接收方客户端收到消息时)。

对于第 1 点(当 Openfire 服务器收到消息时),您需要服务器支持 XEP-0198 (Stream Management). Unfortunately, Openfire doesn't support XEP-198 yet