我已经使用XMPP iOS框架与OpenFire服务器实现聊天应用程序.
幸运的是,应用程序正在运行,但我在应用程序中面临一个互联网断开的问题.
当用户正在注销或手动进入离线模式时,它会将节发给他/她的名单.所以他/她的名单知道用户进入离线模式.
现在当互联网从用户设备断开连接时,由于互联网断开,应用程序无法向服务器发送存在节.所以他/她的名单将不会获得关于该离线用户的信息,用户将只显示在线模式.
我认为像OpenFire服务器可能会检查连接的用户,并且每当任何用户断开连接时,它应该将离线状态的发布状态发送到他的名单,以便他们知道该用户处于脱机模式.
任何人都可以帮助我,如果有任何方式,我可以实现这个功能.
这将有助于我解决这个问题.
提前致谢.
解决方法
这是核心的xmpp功能,Openfire必须发送给你的联系人不可用.所以它看起来像一个bug.
但是有一个不同的问题 – 移动互联网用户可能会频繁重新连接,XMPP社区开发了一个 Stream Management扩展,它允许服务器在快速重新连接和恢复客户端会话时进行“休眠”,无需存在更改.总结:
但是有一个不同的问题 – 移动互联网用户可能会频繁重新连接,XMPP社区开发了一个 Stream Management扩展,它允许服务器在快速重新连接和恢复客户端会话时进行“休眠”,无需存在更改.总结:
>检查流管理是否处于活动状态 – 在这种情况下,用户仍然会在线固定时间(通常为5分钟),然后脱机.
>检查Openfire是否实现任何非标准扩展以维护用户会话.
>如果您确定没有任何扩展名是“休眠”用户会话 – 那么这是一个真正的错误.尝试与不同的xmpp服务器相同 – 好候选人是ejabberd和prosody