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