簡體   English   中英

Socket.IO僅向所有客戶端發出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM