2013-06-02 12 views
6

Ich erstelle eine VOIP-Anwendung und verwende auch eine SocketRocket-Bibliothek, um meine Websockets zu verwalten und Daten daraus zu ziehen. Aber mein Hauptproblem ist, wenn ich auf (IOS) Home-Taste klicke, so dass mein Websocket nach einer Minute getrennt wird. Ich habe untenIch kann Websocket im Hintergrund nicht am Leben halten iOS

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

Ich bin auch Einstellung UIBackgroundModes in plist für VOIP und Audio, die Apple-Dokumentation für die Entwicklung von VoIP-Anwendung über den Link lesen, aber wenn ich meine Bewerbung wieder so mein websocket Zustand geschlossen ist, obwohl ich nicht bin websocket-Objekt freigeben.

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

nun eine Verbindung mit Websocket für restablishing so muss ich wieder anrufen WebSocket öffnen und eine andere Instanz Websocket-Objekt erstellen, die zuvor nach dem Loslassen.

Beim Schließen des Websocket wird auch meine SIP-Registrierung von meinem Server getrennt und ich muss mich wieder an meinem SIP anmelden.

Wie kann ich verhindern, dass mein Websocket sich nähert und wie kann ich setKeepAliveTimeout: handler: nützlich, um mein Problem zu beheben.

Bibliothek Verwendung Websocket herzustellen ist als unten

https://github.com/square/SocketRocket

Antwort

3

Versuchen Sie, die folgenden zwei Zeilen in SRWebSocket _initializeStreams Zugabe

// Setup connections to be VOIP connections 
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); 
CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); 
Verwandte Themen