消息丢失,而接收者的存在未在 OF 服务器中更新

Posted

技术标签:

【中文标题】消息丢失,而接收者的存在未在 OF 服务器中更新【英文标题】:Message lost while the receiver's presence is not updated in OF server 【发布时间】:2014-11-17 12:03:36 【问题描述】:

我已经浏览了这个论坛搜索这个问题的解决方案,但找不到。我的问题和这个一样 https://vanity-igniterealtime.jiveon.com/message/225504 https://igniterealtime.org/issues/si/jira.issueviews:issue-html/OF-161/OF-161.ht毫升

我已经配置了来自服务器端的 Ping 请求 30 秒。但 30 秒仍然是巨大的时间。在此期间,很多消息都丢失了。

    XEP-0184 更像是一个客户端交付收据管理。是否有可能我也可以在服务器中获得确认? 是否可以将所有消息存储在 OF 中,直到我们收到接收方的送达回执。并在我们收到送货收据后从 OF 中删除该消息。

请建议我如何防止此消息丢失。

【问题讨论】:

这听起来像是XEP-0198 的工作,不幸的是not yet implemented for OpenFire。 感谢legoscia。是否有任何可用的插件来处理这个问题?关于 Openfire 何时会使用 XEP-198 更新的任何线索。 This blog post 提到了一个插件,但没有提供任何细节。 This forum post 说有一个闭源插件,可能会说服作者贡献代码,但也不详述。上面链接的 JIRA 问题说“如果没有社区的帮助,这个功能不会很快实现”,因此没有明确估计何时会发生这种情况。 【参考方案1】:

目前在 openfire 3.9.3 版本中没有可行的解决方案。

我所做的是创建了一个自定义插件, * 这将拦截消息包并将其添加到自定义表中,直到它收到来自接收方的确认包。

通过这种方式,我们避免了消息丢失。

【讨论】:

能否分享您为消息丢失创建的自定义插件我也面临同样的问题。

以上是关于消息丢失,而接收者的存在未在 OF 服务器中更新的主要内容,如果未能解决你的问题,请参考以下文章

Xtify Cordova 未在应用程序中接收 gcm 推送(仅在从推送启动时)

AMQ之概述

ActiveMq笔记2-消息持久化

漏洞复现 - ActiveMQ反序列化漏洞(CVE-2015-5254)

ActiveMQ 消息未在第二个消费者中接收

RabbitMQ-从基础到实战— 防止消息丢失