消息丢失,而接收者的存在未在 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 推送(仅在从推送启动时)