9

この正確なコードは機能しませんが、次のようなものを期待していました:

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

このようなことは可能ですか?つまり、setInterval を使用して、たとえば 15 秒ごとにトリガーする別の関数を作成できることはわかっています。

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

しかし、ハートビートはすでにこの間隔で実行されているので、それを利用してみませんか?

いずれにせよ、どんな洞察も大歓迎です。

4

1 に答える 1

9

私はあなたがやろうとしていることを理解していると思います。ここで確認できる公開イベントがいくつかあります(Socket.ioイベントのリスト)が、設定された間隔で発生するために利用できる「ハートビート」イベントはありません。

あなたは2番目のコードで正しい方向に進んでいます-

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

そしてクライアント側では-

socket.on('heartbeat', function(data) {
    console.log(data);
})
于 2012-07-12T01:11:28.900 に答える