[英]Socket.IO only emitting to all clients
我的代碼的正確部分是
io.sockets.on('connection', function(socket){
var interval = setInterval(function() {
repaintGraph()
socket.emit('set data chart', '{"series":[['+series+']]}');
}, 1000 );
在這種情況下,如果連接了3個用戶,那么該圖表在一秒鍾內更新3次,無論客戶端數量如何,我都需要在1秒內執行1次代碼
嘗試使用socket.broadcast.emit('event',data)
您可以在連接代碼之外運行間隔代碼:
setInterval(function() {
repaintGraph();
io.emit('set data chart', '{"series":[['+series+']]}');
}, 1000);
io.on('connection', function() {
...
});
io.emit()
將消息廣播到所有連接的客戶端。
代碼中有點效率低下,因為即使沒有連接任何客戶端,它也會repaintGraph()
調用repaintGraph()
,但這使代碼更加容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.