2012-11-27 14 views
13

Sto riscontrando un problema con Socket.IO.Gestione errori Socket.io

Sto tentando di ricollegare il socket dopo gli errori del socket ma non si ricollegherà. Ecco il codice:

socket = io.connect(host, options); 
socket.on('connect', this.onConnect); 
socket.on('error', function() { 
    //here i change options 
    socket = io.connect(host, options); 
}); 

Perché non crea la nuova connessione? (L'host e il porto vengono mantenuti costanti e funziona per la prima connessione).

+4

1) Qual è il 'error' evento? 2) Come fai a sapere che non sta creando una nuova connessione? 3) Ovviamente devi impostare tutti i gestori di eventi ancora una volta quando crei una nuova connessione, lo stai facendo? – freakish

+1

1) "errore" è l'evento socket.io predefinito (https://github.com/LearnBoost/socket.io/wiki/Authorizing) 2) la nuova connessione non viene registrata 3) sì, lo faccio – user1856728

+0

Loggato? Sul lato server? O lato client? – freakish

risposta

9

Provare ad aggiungere l'opzione { 'force new connection': true } a io.connect. Sembra che non riprovi la connessione.

Il socket I/O non si riconnetterà a un host che ha già provato, a meno che non si specifichi questa opzione.

Ecco un frammento con le opzioni hash specificato in-line:

io.connect(host, { 
    'force new connection': true 
}); 

si può imparare di più sulle opzioni qui: https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO