2012-09-26 7 views
6

Używam SocketIO w aplikacji LAN.Ponów próbę połączenia z gniazdem socket.io, jeśli strona klienta zostanie załadowana, a serwer nie działa.

Jeśli klient uruchamia się, a serwer jest wyłączony, jak mogę sprawić, aby on kontynuował ponawianie próby połączenia?

W „connect_failed” zdarzenie nie ognia, ponieważ pojawia się błąd Wsiadaj socket.io: „http://172.20.2.10:8080/socket.io/1/?t=1348654723279

Tak próbowałem:

var socket = io.connect('172.20.2.10',{port:8080});  
var connected = false; 

    socket.on('connect',function(){         
        connected = true; 
       }); 
    socket.on('error', function (err) { 
        reconnect(); 
       }); 

    function reconnect(){ 
        if (!connected){ 
         var t = setTimeout(function() { 
          socket = io.connect('172.20.2.10',{port:8080}); 
          reconnect(); 
          console.log("Socket REC"); 
         },1000); 

        } 
       } 

Ale nie ponownie, myślę, że to z powodu błędu JS ...

staram się unikać odświeżania strony, jeśli to możliwe.

+0

Dlaczego nie spróbować ustawić "autoConnect"? – youken

Odpowiedz

18

Możemy ręcznie użyć metody reconnect instancji gniazda.

socket.on('error', function (err) { 
socket.socket.reconnect(); 
}); 
Powiązane problemy