javascript - Socket.io 服务器端广播

标签 javascript node.js sockets socket.io

我想更新服务器上的数组并将其广播给所有客户端。我面临的问题是我需要客户端参数来广播。在服务器上:

    var socket = io.listen(8000);
    var plateaus = [];

    setInterval(function () {
        plateaus.push('new data');
       -- send the updated array to all clients --
    }, 1000);

    socket.sockets.on("connection", setEventListeners);

    function setEventListeners(client) 
       // loadExistingPlayer(client); <- normally I use the client param
    }

如何广播更新后的数组?非常感谢!

最佳答案

回答我自己的问题(希望将来能帮助任何人)。

您可以将客户端参数存储在数组中并随时访问它:

var socket = io.listen(8000);
var plateaus = [];
var clients = []

setInterval(function () {
    plateaus.push('new data');
    for(var i = 0; i < clients.length; i++){
       clients[i].emit('updata all clients',  plateaus)
    }
}, 1000);

socket.sockets.on("connection", setEventListeners);

function setEventListeners(client) 
   console.log('new client');
   clients.push(client);
}

关于javascript - Socket.io 服务器端广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32681019/

相关文章:

javascript - 突出显示 html 文档中的文本

node.js - TLS + NodeJS,如何在服务器端获取客户端的公钥字节

node.js - 为什么 npm start 抛出 events.js :187 throw er;//Unhandled 'error' event in my react project?

node.js - 为什么 jwt token 的签名部分总是不同,即使使用相同的值创建时也是如此?

node.js - Socket.io 不与 express 共享 session

javascript - ng-repeat 在第三个循环中不起作用

javascript - 在 JavaScript 中链接 .bind() 调用。意想不到的结果?

javascript - OpenAI 没有返回结果?

c - 在 C 中创建套接字时出错 (Visual Studio 2017)

Java - 具有多个客户端的服务器错误