我正在创建一个VOIP应用程序,并使用SocketRocket库来管理我的Websockets并从中提取数据。但我的主要问题是当我点击(IOS)主页按钮时,我的websocket在一分钟后断开连接。我已经阅读了Apple的文档,用于从下面的链接开发VOIP应用程序
我也在用于VOIP和音频的plist中设置UIBackgroundModes,但是当我恢复我的应用程序时,我的websocket状态已关闭,尽管我没有发布websocket对象。
_webSocket.readyState = 3 // It identifies that my websocket is close.
现在重新建立与Websocket的连接,所以我需要再次调用websocket open并在之前发布之后创建另一个Websocket对象实例。
关闭websocket后,我的服务器SIP注册也会断开连接,我需要重新连接到我的SIP。
如何防止我的websocket接近?如何使setKeepAliveTimeout:handler:对解决我的问题很有帮助。
用于建立Websocket的库用法如下
答案 0 :(得分:3)
尝试在SRWebSocket _initializeStreams
中添加以下两行// Setup connections to be VOIP connections
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);