2013-06-02 123 views
6

我正在創建一個VOIP應用程序,並且還使用SocketRocket庫來管理我的Websockets並從中獲取數據。但我的主要問題是當我點擊(IOS)主頁按鈕,所以我的websocket在一分鐘後斷開連接。我已閱讀蘋果文檔的鏈接開發下方無法讓WebSocket在後臺保持活躍狀態​​iOS

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

VOIP應用,我還設置UIBackgroundModes在plist中的VOIP和音頻,但是當我恢復的應用程序,所以我的WebSocket的狀態是關閉的,雖然我不是釋放websocket對象。

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

現在對於restablishing與WebSocket的連接,所以我需要再次調用的WebSocket開放和先前釋放後創建的WebSocket對象的另一個實例。

在關閉websocket時,我的服務器上的SIP註冊也會斷開連接,我需要再次重新連接到我的SIP。

如何防止我的websocket關閉,以及如何創建setKeepAliveTimeout:處理程序:有助於解決我的問題。

庫利用建立的WebSocket是如下

https://github.com/square/SocketRocket

回答

3

嘗試增加在SRWebSocket _initializeStreams以下兩行

// Setup connections to be VOIP connections 
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); 
CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); 
相關問題