检测XMPP消息使用Openfire读取/未读

问题描述:

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

+0

不,这是不可能的:“读”一条信息意味着一个人正在读一条线,基本上只有一个人可以证实这一点。 Whatsapp双重检查在服务器接收时为灰色,而在目标设备上收到消息时为双重检查。 – MrPk

+0

哦,它是“看到”,如Facebook或Skype,我想检查用户是否看到它(或它显示在屏幕上) – maphongba008

+1

您需要自定义XMPP扩展才能支持此功能。 –

我是如何通过在用户打开未读聊天时发送特殊消息来实现的。

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

特殊信息应该是唯一的:这样你就可以检查它是否被接收,这意味着信息已被读取。

XEP-0184(送达回执)用于确保邮件到达最终用户(用户在线)。对于显示通知,您可以使用XEP-0085(ChatStateEvent)或XEP-0022(MessageEvent)。尽管XEP-0022不推荐使用,建议使用XEP-0085。

+0

我认为XEP-0085无法解决我的问题。 XEP-0085仅在发送之前通知消息状态(用户正在撰写或未撰写)。我发现XEP-0333可能对我有帮助。我会试试这个。 – maphongba008

+0

好的。那很好:) –

+0

我意识到XEP-0333用于在用户在线时发送消息状态,archiveMessage没有保存消息的状态,所以我找不到像Fb或Skype这样的未读消息数不 – maphongba008