【问题标题】:XMPP iOS Framework detect internet disconnection issue with OpenFire serverXMPP iOS 框架检测 OpenFire 服务器的互联网断开问题
【发布时间】:2015-07-24 08:56:06
【问题描述】:

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

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

当用户手动退出或进入离线模式时,它会将节发送到他/她的名册。所以他/她的花名册知道用户进入了离线模式。

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

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

如果有任何方法可以实现此功能,任何人都可以帮助我。

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

提前致谢。

【问题讨论】:

  • 嗨...你不能检查一下你的互联网连接吗,如果是这样,那么你可以将特定用户的离线状态发送给他/她的所有朋友......我的意思是如果它不使用库,我们可以手动检查连接并采取必要的步骤。
  • @iCodeAtApple 我可以在最后检查互联网连接,但我无法将状态发送给其他朋友,因为互联网连接丢失:(
  • 你们有解决上述问题的办法吗?
  • @Parthpatel1105 您可以使用可达性管理器来检测 Internet 断开连接和存在 Openfire 的不可用功能。

标签: ios sockets xmpp openfire xmppframework


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-07-18
    • 2015-08-20
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    相关资源
    最近更新 更多