2013-06-02 14 views
6

私はVOIPアプリケーションを作成しています。また、SocketRocketライブラリを使用してWebソケットを管理し、そこからデータを取得しています。しかし、私の主な問題は、私のWebSocketが1分後に切断するように(IOS)ホームボタンをクリックするときです。私はまた、VOIPとオーディオ用のplistでUIBackgroundModesを設定していますが、私は自分のアプリケーションを再開したときに、私はないですが、そう私のWebSocketの状態が閉じられているWebSocketをバックグラウンドで稼動させることができません

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

下記のリンクからVoIPアプリケーションを開発するためのAppleのドキュメントを読んでいますwebsocketオブジェクトを解放します。

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

は今のWebSocketとの接続をrestablishingためので、私は再び呼び出すオープンのWebSocketと以前に解放した後のWebSocketオブジェクトの別のインスタンスを作成する必要があります。

websocketを閉じると、自分のサーバーからのSIP登録も切断され、再度SIPに再接続する必要があります。

どうすればwebSocketが閉じるのを防ぐことができますか?setKeepAliveTimeout:handler:私の問題を解決するにはどうすればいいですか?

https://github.com/square/SocketRocket

答えて

3

てみはSRWebSocket _initializeStreamsに以下の2行を追加し、以下のようなWebSocketを確立する

ライブラリを使用することである

// Setup connections to be VOIP connections 
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); 
CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); 
関連する問題