【问题标题】:User shows online in OpenFire, even app is in background OR in kill state用户在 OpenFire 中在线显示,即使应用程序处于后台或处于终止状态
【发布时间】:2021-08-27 14:11:07
【问题描述】:

我们的应用程序正在使用XMPPFramework 和 Openfire(版本:4.6.2)。

杀死应用程序或将其置于后台模式后,仍然显示用户在线几分钟,然后变为离线。

我们尝试了 空闲连接策略时间,但仍然一无所获。

欢迎提出建议。

【问题讨论】:

  • 您在使用流管理 (XEP-0198) 吗?
  • 是的,我们正在使用它。

标签: ios swift xmpp openfire xmppframework


【解决方案1】:

我在一个项目中遇到过类似的问题,经过调查发现它是在使用流恢复功能时发生的(流管理 XEP-0198)。

如果在启动新流时启用流恢复,Openfire 不会立即将用户标记为离线,而是将其会话标记为分离状态。因此客户端应用可以再次恢复流,而无需进行完全登录。

如果你不使用流恢复,用户将立即离线。

启用流管理时,如果客户端发送以下数据包,则流上启用恢复功能。

<enable xmlns='urn:xmpp:sm:3' resume='true'/>

对于这个数据包,服务器通过发回确认:

<enabled xmlns='urn:xmpp:sm:3' id='some-long-sm-id' resume='true'/>

【讨论】:

  • 这完全正确。此外,这是一项功能,而不是错误。它旨在允许客户端从短暂的网络中断中恢复。请注意,“遭受”此问题的客户已明确协商使用此功能。
  • 是的,这是一项功能。但不确定移动应用程序是否可以使用它。因为当移动应用程序从终止状态再次启动时,每次正常的登录流程都会执行。
  • 网络中断和应用程序被杀死是两种截然不同的情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-04
  • 1970-01-01
  • 1970-01-01
  • 2019-01-08
相关资源
最近更新 更多