我正在使用websocket和Swift 2来维护应用和服务器之间的一些数据。这个websocket在前台和后台状态下运行良好,但是当我终止(kill)app时,websocket连接断开。当再次来到应用程序时,它将再次开始工作。
备注:
那么,当应用程序处于终止(终止)状态时,任何想法和建议都会对如何保持实时websocket表示赞赏吗?
提前致谢!
答案 0 :(得分:3)
这是不可能的。当用户终止应用程序时,一切都顺其自然,如果情况不是这样,那么用户将无法阻止应用程序做出奇怪的事情(除了重启整个设备)。
此外,您不应该尝试使用异国情调的东西来解决系统限制,因为这会(最终)导致应用拒绝您释放到商店和/或对您的应用运行时电池寿命不满意的用户。
答案 1 :(得分:0)
您可以尝试使用内容可用的推送通知来实现您正在寻找的行为,这会让您有时间在后台下载内容(更多信息here),以便执行此操作有效负载的结构应该是,
{
"aps" : {
"content-available" : 1
},
"data-id" : 1234
}
然后实现以下方法来下载内容,或者在您的情况下使用Web套接字执行某些操作
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
此方法应仅用于更新应用中的某些状态或下载某些数据,Apple建议不要使用此方法来保持套接字始终处于活动状态,如果您使用此方法,我肯定会拒绝您的应用你的插座总是活着。