2013-06-02 17 views
6

Sto creando un'applicazione VOIP e anche utilizzando una libreria SocketRocket per gestire i miei Websockets e prelevare i dati da esso. Ma il mio problema principale è quando faccio clic sul pulsante Home (IOS) in modo che il mio websocket si disconnetta dopo un minuto. Ho letto la documentazione di Apple per lo sviluppo di applicazioni VOIP dal link sottostanteImpossibile mantenere Websocket vivo in background iOS

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

sto anche Impostazione UIBackgroundModes in plist per VOIP e audio, ma quando riprendo il mio applicazione in modo mio stato websocket è chiuso anche se non sono Rilasciando oggetto Websocket.

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

Ora per restablishing un collegamento con websocket quindi ho bisogno di chiamare di nuovo websocket aperto e creare un'altra istanza di oggetto websocket dopo aver rilasciato in precedenza.

Alla chiusura della presa Web, anche la mia registrazione SIP dal mio server si disconnette e devo ricollegarmi nuovamente al mio SIP.

Come impedire che il mio websocket si avvicini e come posso impostare setKeepAliveTimeout: handler: utile per risolvere il problema.

uso biblioteca di stabilire websocket è come sotto

https://github.com/square/SocketRocket

risposta

3

Prova ad aggiungere le seguenti due righe in SRWebSocket _initializeStreams

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