2012-07-11 7 views
9

Este código exacto no funciona, pero, esperaba algo así como que era:En Socket.IO, ¿es "latido" un evento que se puede utilizar para desencadenar otras acciones?

io.sockets.on('connection', function(socket) { 
    socket.on('heartbeat', function() { 
     // Do something here... 
    }); 
}); 

es algo como esto posible? Quiero decir, sé que sólo puede realizar una función diferente que desencadena cada, digamos, 15 segundos usando un setInterval:

io.sockets.on('connection', function(socket) { 
    setInterval(function() { 
     // Do something 
    },15000); 
}); 

Pero como el latido del corazón ya se está ejecutando en este intervalo, por qué no hacer uso de ella?

En cualquier caso, cualquier idea sería muy apreciada.

Respuesta

9

Creo que veo lo que estás tratando de hacer. Hay algunos eventos expuestos que puede verificar aquí - list of Socket.io events - pero no hay un evento de "latido" que pueda tocar para disparar a un intervalo establecido.

Estás en el camino correcto con la segunda pieza de código -

setInterval(function() { 
    socket.emit('heartbeat', someData); 
}, 5000); 

Y en el lado del cliente -

socket.on('heartbeat', function(data) { 
    console.log(data); 
}) 
Cuestiones relacionadas