断开连接后从 xmpp 服务器检索最后发送的消息

Posted

技术标签:

【中文标题】断开连接后从 xmpp 服务器检索最后发送的消息【英文标题】:Retrieve last sent messages from xmpp servers after disconnect 【发布时间】:2014-06-08 02:31:00 【问题描述】:

我创建了一个 IM 应用程序,它使用 asmack 连接到各种 xmpp 协议,例如 google talk 和 facebook。

在 Wifi/数据之间切换或完全失去信号时,有时会丢失一些消息(发送和接收的消息)。当应用程序设法重新连接时,有什么方法可以检索该特定协议的最后接收消息?我发现自己必须经常检查默认消息应用程序,以查看在我断开连接时是否有任何消息。

另外,如何在发送消息时获得交付确认?

谢谢!

【问题讨论】:

【参考方案1】:

如果您使用支持XEP-0136: Message Archiving或XEP-0313: Message Archive Management的服务器,您将能够获取之前发送的所有消息。

但是,Google Talk 和 Facebook Chat 都没有实现这些,而且 afaik 他们也没有替代的 XMPP API。

【讨论】:

以上是关于断开连接后从 xmpp 服务器检索最后发送的消息的主要内容,如果未能解决你的问题,请参考以下文章

XMPP 与 Firebase 云消息传递的连接断开

iOS XMPP 客户端在一段时间后断开连接

XMPP 流发送,不接收。为啥 XMPP 流可能会断开连接?

应用程序处于后台时的连接状态和 XMPP 处理

XMPP框架下微信项目总结授权登陆/注销/注册

使用openfire在xmpp中几秒钟后连接断开