折腾:
[已解决]swift中timer NSTimer.scheduledTimerWithTimeInterval不工作
后,希望:
iOS app进入后台后
websocket仍然继续保持连接
仍然能否接受来自远端的服务器的消息
swift ios background socket keep alive
How to keep socket alive in ios? – Stack Overflow
ios background socket keep alive
iOS应用中通过设置VOIP模式实现休眠状态下socket的长连接 – missautumn的专栏 – 博客频道 – CSDN.NET
iphone – Presistent socket in background (iOS)? – Stack Overflow
Keep alive UDP socket in background for ios – Stack Overflow
ios background socket alive
[总结]
目前想要支持普通类型的app,在进入后台时,仍旧保持(websocket)socket连接,
结果是:
1.iOS官方不支持这类,处于后台却仍保持socket连接的普通app
2.只支持VoIP类的app,允许处在后台时,保持对应的连接,用于接收音视频数据。
注:如果你hack去注册app为VoIP的方式去实现普通app在后台时仍保持socket连接,则:
(很)可能会导致你的(非VoIP的应用却注册为VoIP类型的)app上架到AppStore时被苹果官方拒绝
3.也有其他类型的hack,比如:
通过beginBackgroundTaskWithExpirationHandler可以有10分钟处理时间+之后再用本地推送的方式,去实现
但是很明显也不是很好的办法。
-》
只能做远程Push推送了。