2012-07-11 7 views
9

Questo codice esatto non funziona, ma, speravo qualcosa di simile è stato:In Socket.IO, 'heartbeat' è un evento che può essere utilizzato per attivare altre azioni?

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

è qualcosa di simile possibile? Voglio dire, so che posso solo fare una funzione differente che si innesca ogni, diciamo, 15 secondi utilizzando un setInterval:

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

Ma dal momento che il battito del cuore è già in esecuzione in questo intervallo, perché non fare uso di esso?

In ogni caso, qualsiasi intuizione sarebbe molto apprezzata.

risposta

9

Penso di vedere quello che stai cercando di fare. Ci sono alcuni eventi esposti che puoi controllare qui - list of Socket.io events - ma non c'è nessun evento "heartbeat" che puoi attingere per sparare a intervalli regolari.

Sei sulla strada giusta con il secondo pezzo di codice -

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

E sul lato client -

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