Socket.io serverside广播

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

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); } 

连接你的客户端之后,是不是只是从你的服务器emit一个事件,你的客户端可以通过on(event, cb)来收听这个事件?

从文档: http : //socket.io/docs/

服务器:

 var io = require('socket.io')(server); io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 

客户:

 var socket = io('http://localhost'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); });