2012-09-26 41 views
6

Estoy usando SocketIO en una aplicación LAN.Vuelva a intentar la conexión socket.io si la página del cliente se carga y el servidor está inactivo

Si el cliente se inicia y el servidor está apagado, ¿cómo puedo evitar que vuelva a intentar la conexión?

El evento "connect_failed" no se dispara porque me sale un error en GET socket.io: "http://172.20.2.10:8080/socket.io/1/?t=1348654723279"

Así que he intentado:

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); 

        } 
       } 

Pero no se reconecta, creo que es debido al error JS ...

que estoy tratando de evitar una actualización de la página si es posible.

+0

¿Por qué no prueba la configuración "autoConnect"? – youken

Respuesta

18

podemos usar manualmente el método de reconexión de instancia de socket.

socket.on('error', function (err) { 
socket.socket.reconnect(); 
}); 
Cuestiones relacionadas