在应用程序后台运行时保持 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 处于活动状态的主要内容,如果未能解决你的问题,请参考以下文章

iPhone中的XMPP后台连接

XMPP 应用程序在应用程序进入后台模式时发送消息

应用程序进入后台时如何保持 Swift Socket IO 运行?

如何在Android中保持kivy服务在后台运行(切换到其他应用程序或锁定屏幕时服务仍然运行)?

如何保持活动在后台运行? [复制]

iOS开发:后台运行以及保持程序在后台长时间运行