在应用程序后台运行时保持 XMPPStream 处于活动状态

Keeping the XMPPStream active when the app is backgrounded

这里有多个案例,我想分别强调一下。

  1. 用户按下主页按钮 -> 应用程序进入后台:理想情况下,人们仍然希望 XMPP 流至少激活几分钟,以便可以接收到一些消息。

  2. 应用程序在后台运行超过 10 分钟(或 Apple 的某些限制):XMPP 流在限制后不需要处于活动状态,用户可以使用某种形式的推送通知来启用消息等

  3. 应用程序已被用户终止:XMPP 流在这里根本不活动,用户可以使用某种形式的推送通知来启用消息等。

目前,我正在使用 XMPP 框架来处理多用户聊天等。即使在上述情况 1 中,我的 XMPP 流也会终止,即用户按下主页按钮并停止接收来自 XMPP 流的任何消息。

问:这是期望的行为吗?如果不是,可以在主 XMPP 流上使用 enableBackgroundingOnSocket 吗?这是否意味着我正在使用 VoIP? iphone XMPP App run background

问:如何使用可用的 XMPP 框架实现案例 2。

谢谢

Apple 非常注重最佳实践,很明显您的应用程序在后台时不应使用大量设备资源。因此,如果不启用 background modes 支持,您的应用将被冻结并且所描述的行为是正确的。但是,如果您像您链接的 SO 问题中那样启用后台模式,您的应用可能会因为缺少 VoIP 功能而被拒绝。

关于你的第二个问题。目前尚不清楚您使用的是什么框架,但您也可以连接到您的后端,例如 PushWoosh 或任何其他类似物