XMPP iOS Framework检测OpenFire服务器的Internet断开问题

时间:2015-05-13 07:40:44

标签: ios sockets xmpp openfire xmppframework

我已经使用XMPP iOS Framework和OpenFire服务器实现了聊天应用程序。

幸运的是,应用程序运行成功但我在应用程序中面临一个互联网断开问题。

当用户注销或手动进入离线模式时,它会向他/她的名单发送节。所以他/她的名单知道用户进入离线模式。

现在互联网将断开与用户设备的连接,由于互联网断开连接,应用程序无法向服务器发送在线状态节。因此,他/她的名单不会获得有关该离线用户的信息,用户将仅以在线模式显示。

我认为像OpenFire服务器这样的东西可能能够检查连接的用户,并且当任何用户断开连接时,它应该向他的名单发送具有离线状态的状态节,以便他们知道该用户处于离线模式。

如果我能通过任何方式实现此功能,请有人帮助我。

解决这个问题对我很有帮助。

提前致谢。

1 个答案:

答案 0 :(得分:4)

这是核心xmpp功能,Openfire必须代表您向您的联系人发送unavailable。所以它看起来像一个bug。 但是存在一个不同的问题 - 具有移动互联网的用户可能会经常重新连接,并且XMPP社区开发了Stream Management扩展,允许服务器在快速重新连接并在没有状态更改的情况下恢复它时“休眠”客户端会话。总结:

  1. 检查流管理是否处于活动状态 - 在这种情况下,用户仍将在线固定时间(通常为5分钟),然后离线。
  2. 检查Openfire是否实施任何非标准扩展以维护用户会话。
  3. 如果您确定没有任何扩展程序正在“休眠”用户会话 - 那么这是一个真正的错误。尝试使用不同的xmpp服务器 - 好的候选人是ejabberdprosody