11. Juli 2012, 21:37 von KyleFarris

Ist "Heartbeat" in Socket.IO ein Ereignis, mit dem andere Aktionen ausgelöst werden können?

Dieser genaue Code funktioniert nicht, aber ich hatte gehofft, dass es so etwas wie:

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

Ist so etwas möglich? Ich meine, ich weiß, dass ich einfach eine andere Funktion erstellen kann, die alle 15 Sekunden mit einem setInterval auslöst:

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

Aber da der Herzschlag bereits in diesem Intervall abläuft, warum nicht davon Gebrauch machen?

In jedem Fall wäre jede Einsicht sehr dankbar.

questionAnswers (0)

12. Juli 2012, 01:11 von Chance Chapman

Ich glaube, ich sehe, was du versuchst zu tun. Es gibt einige exponierte Ereignisse, die Sie hier überprüfen können -Liste der Socket.io-Ereignisse - Es gibt jedoch kein "Heartbeat" -Ereignis, das Sie in einem festgelegten Intervall abfeuern können.

Mit dem zweiten Teil des Codes sind Sie auf dem richtigen Weg -

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

Und auf der Kundenseite -

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

yourAnswerToTheQuestion