无法在后台iOS中保持Websocket存活



我正在创建一个VOIP应用程序,并且还使用SocketRocket库来管理我的Websockets并从中提取数据。但我的主要问题是,当我点击(IOS) Home按钮,所以我的websocket一分钟后断开连接。我已经从下面的链接中阅读了苹果开发VOIP应用程序的文档

https://developer.apple.com/library/ios/文档/iPhone/概念/iPhoneOSProgrammingGuide/AdvancedAppTricks AdvancedAppTricks.html

我也在plist中为VOIP和音频设置了UIBackgroundModes,但是当我恢复应用程序时,虽然我没有释放websocket对象,但我的websocket状态是关闭的。

_webSocket.readyState = 3    //  It identifies that my websocket is close.

现在要与Websocket建立连接,所以我需要再次调用Websocket open,并在释放之前创建Websocket对象的另一个实例。

在websocket关闭时,我的服务器的SIP注册也断开了连接,我需要再次重新连接到我的SIP。

我怎么能防止我的websocket接近,我怎么能使setKeepAliveTimeout:handler:有用的解决我的问题。

建立Websocket的库使用如下

https://github.com/square/SocketRocket

尝试在SRWebSocket _initializeStreams

中添加以下两行
// Setup connections to be VOIP connections
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);

相关内容

  • 没有找到相关文章