2012-07-11 10 views
9

mã chính xác này không hoạt động, nhưng, tôi đã hy vọng một cái gì đó như thể đó là:Trong Socket.IO, là 'nhịp tim' một sự kiện có thể được sử dụng để kích hoạt các hành động khác?

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

là một cái gì đó như thể này? Ý tôi là, tôi biết tôi chỉ có thể làm cho một chức năng khác nhau mà gây nên mỗi, nói, 15 giây sử dụng một setInterval:

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

Nhưng kể từ khi nhịp tim vẫn đang chạy ở khoảng thời gian này, tại sao không tận dụng nó?

Trong mọi trường hợp, mọi thông tin chi tiết sẽ được đánh giá cao.

Trả lời

9

Tôi nghĩ rằng tôi thấy những gì bạn đang cố gắng làm. Có một vài sự kiện tiếp xúc mà bạn có thể kiểm tra tại đây - list of Socket.io events - nhưng không có sự kiện "nhịp tim" mà bạn có thể chạm vào để kích hoạt tại một khoảng thời gian đã đặt.

Bạn đang đi đúng hướng với mảnh thứ hai của mã -

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

Và về phía khách hàng -

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