在应用程序后台运行时保持 XMPPStream 处于活动状态
Posted
技术标签:
【中文标题】在应用程序后台运行时保持 XMPPStream 处于活动状态【英文标题】:Keeping the XMPPStream active when the app is backgrounded 【发布时间】:2015-03-12 20:40:15 【问题描述】:这里有多个案例,我想分别强调一下。
用户按下主页按钮 -> 应用程序进入后台:理想情况下,仍然希望 XMPP 流至少处于活动状态几分钟,以便可以接收到一些消息。
李>应用程序在后台运行超过 10 分钟(或 Apple 的一些限制):XMPP 流在限制后不需要处于活动状态,用户可以使用某种形式的推送通知来启用消息等。
应用程序已被用户终止:XMPP 流在这里根本不活动,用户可以使用某种形式的推送通知来启用消息等。
目前,我正在使用 XMPP 框架来处理多用户聊天等。即使在上述情况 1 中,我的 XMPP 流也会死掉,即用户按下主页按钮并停止接收来自 XMPP 流的任何消息。
问:这是期望的行为吗?如果不是,可以在 XMPP 主流上使用 enableBackgroundingOnSocket
吗?这是否意味着我正在使用 VoIP? iphone XMPP App run background
问:如何使用可用的 XMPP 框架实现案例 2。
谢谢
【问题讨论】:
【参考方案1】:Apple 非常重视最佳实践,很明显,您的应用在后台时不应使用大量设备资源。因此,如果不启用 background modes 支持,您的应用程序将被冻结并且所描述的行为是正确的。但是,如果您启用了已链接的 SO 问题中的后台模式,您的应用可能会因为缺少 VoIP 功能而被拒绝。
关于你的第二个问题。目前尚不清楚您使用的是什么框架,但您也可以连接到您的后端,例如 PushWoosh 或任何其他类似物
【讨论】:
以上是关于在应用程序后台运行时保持 XMPPStream 处于活动状态的主要内容,如果未能解决你的问题,请参考以下文章
应用程序进入后台时如何保持 Swift Socket IO 运行?