sub*_*arb 6 iphone background xmppframework
我开发和应用程序,当前设置为"基于位置",以便它可以在后台无限制地运行.当用户移动时,我不需要它来做任何事情.经过一些搜索后,我了解到这个应用程序只会在位置发生变化时执行代码,10分钟后无法执行任何代码.
我的应用程序在后台保持与XMPP连接50分钟左右,然后断开连接.我希望应用程序永远不会断开,我看着框架,但我找不到解决此问题的地方.你知道是否可以"坚定地"保持联系?如果是这样,我必须在xmppframework中更改哪些设置.
谢谢
[编辑] 50分钟后,用户仍然连接到XMPP,但它已被连接的XMPPRoom断开连接.在另一次运行中它连接了3个小时,iPhone连接的时间似乎不一致.
为了确保您的应用程序可以发送和接收保持活动消息,它需要是一个 voip 应用程序并使用 voip 套接字。来自苹果的文档:
\n\n\n\n\n\n
\n- 将 UIBackgroundModes 键添加到您的 app\xe2\x80\x99s Info.plist 文件中。将此键的值设置为包含 voip 值的数组。
\n- 配置 app\xe2\x80\x99s 套接字之一以供 VoIP 使用。
\n- 在进入后台之前,调用 setKeepAliveTimeout:handler: 方法安装一个要定期执行的处理程序。您的应用程序可以使用此处理程序来维护其服务连接。
\n
至于插座:
\n\n\n\nNSInputStream 和 NSOutputStream:对于 Cocoa 流,使用 setProperty:forKey: 方法将 NSStreamNetworkServiceType 属性添加到流中。该属性的值应设置为 NSStreamNetworkServiceTypeVoIP。
\n