【发布时间】:2015-06-07 02:09:09
【问题描述】:
按照文档和 XMPPframework 示例代码,我遇到了存在状态问题。我写了一个聊天应用程序。
问题:当用户 1 和 2 在线时,我成功获取状态,他们可以互相聊天。但是,当用户 2 通过(Wifi 关闭 / 3G 关闭)物理离线时,用户 1 没有从 XMPP 获得离线状态,因此当用户 2 上线时,从该时刻发送的任何消息都会丢失。
似乎因为用户 2 没有收到通知或在 XMPP 中存储为离线,因此它没有存储离线消息以在用户 2 上线时推送回用户 2。
我已尝试通过显式编写对 XMPP 的 [goOffline] 调用来解决此问题,但是该调用显示在“用户 2”的“发送日志”中,但未在用户 1 的“RECV 日志”中收到来自XMPP,因此消息在两者之间丢失。
-
还尝试了其他来源的回复。
- 设置在线状态并发送 XMPP
- 使用非负值更改优先级
- XMPPArchiving 工作,但这不是我想要的。
- 服务器端 Mod_zero 推送启用,但有时仅收到第一条消息推送通知。
- 为用户设置 ejabberd.cfg 文件限制和离线消息限制。
- 请求离线消息拉取。
谁能帮我解决这个问题?
【问题讨论】:
标签: ios xmpp offline messages xmppframework