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

use*_*584 6 sockets voip objective-c websocket objective-c-blocks

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

https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html

我也在用于VOIP和音频的plist中设置UIBackgroundModes,但是当我恢复我的应用程序时,我的websocket状态被关闭,尽管我没有发布websocket对象.

_webSocket.readyState = 3    //  It identifies that my websocket is close.
Run Code Online (Sandbox Code Playgroud)

现在重新建立与Websocket的连接,所以我需要再次调用websocket并在之前发布之后创建另一个Websocket对象实例.

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

我如何防止我的websocket接近,如何使setKeepAliveTimeout:handler:有助于解决我的问题.

用于建立Websocket的库用如下所示

https://github.com/square/SocketRocket

Nai*_*ler 3

尝试在 SRWebSocket _initializeStreams 中添加以下两行

// Setup connections to be VOIP connections
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
Run Code Online (Sandbox Code Playgroud)