2012-07-11 18 views
9

to dokładny kod nie działa, ale miałem nadzieję, że coś takiego było:W Socket.IO, czy "bicie serca" jest wydarzeniem, które może być użyte do wywołania innych działań?

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

Czy coś takiego jest możliwe? To znaczy, wiem, że mogę po prostu zrobić inną funkcję, która wyzwala co, powiedzmy, 15 sekund za pomocą setInterval:

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

Ale od bicia serca jest już uruchomiony w tym przedziale, to dlaczego nie skorzystać z tego?

W każdym przypadku, każdy wgląd byłby bardzo doceniony.

Odpowiedz

9

Myślę, że widzę, co próbujesz zrobić. Jest kilka odsłoniętych zdarzeń, które można sprawdzić tutaj - list of Socket.io events - ale nie ma zdarzenia "pulsu", które można wykorzystać do strzelania w ustalonych odstępach czasu.

Jesteś na właściwej drodze z drugim kawałkiem kodu -

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

A po stronie klienta -

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