Вопрос по node.js, socket.io, websocket, heartbeat – Является ли «сердцебиение» в Socket.IO событием, которое можно использовать для запуска других действий?

9

Этот точный код не работает, но я надеялся, что-то вроде этого:

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

Возможно ли что-то подобное? Я имею в виду, я знаю, что могу просто создать другую функцию, которая запускается каждые, скажем, 15 секунд, используя setInterval:

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

Но так как сердцебиение уже работает на этом интервале, почему бы не использовать его?

В любом случае, любая оценка будет принята с благодарностью.

Ваш Ответ

1   ответ
9

что вижу, что вы пытаетесь сделать. Есть несколько открытых событий, которые вы можете проверить здесь -список событий Socket.io - но «сердцебиение» отсутствует событие, к которому вы можете подключиться, чтобы выстрелить через заданный интервал.

Вы на правильном пути со вторым фрагментом кода -

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

А на стороне клиента -

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

Похожие вопросы