从一个打开的连接中发出多个消息socket.io

我是socket.io的新手,并试图找出如何发送多个消息。 这是我正在工作的场景,

function setupServer(server) { var socketIO = require("socket.io").listen(server); socketIO.sockets.on('connection', function (socket) { console.log("client is connected"); socket.emit('update', { progress: "starting..." }) }); } 

我必须从另一个方法调用setupServer(服务器),并且我正在接收客户端的“开始…”。

但问题是,我想发送更多/多个消息后。 无法发送消息arrays,因为我的应用程序正在每10毫秒(在callback函数中)build立消息string,我想创build它们时立即发送。

任何解决scheme 是否有可能得到套接字对象引用重用这个函数?

从socket.io文档: http ://socket.io/docs/#broadcasting-messages

要进行广播,只需添加一个广播标志来发送和发送方法调用。 广播意味着将消息发送给除了启动它的套接字以外的其他人。

 function setupServer(server) { var socketIO = require("socket.io").listen(server); socketIO.on('connection', function (socket) { console.log("client is connected"); socket.emit('update', { progress: "starting..." }); startBroadCastFromSocket(socket, 3); socket.on('disconnect', function(){ stopBroadcastFromSocket(socket); }); }); // broadcast message to all sockets setInteval(function() { broadcastMessageToEveryone(socketIO, {body: 'Hello everyone (FROM SERVER)', timestamp: new Date()); }, 1000); } function broadcastMessageToEveryone(io, body) { io.emit('message', {body: body, timestamp: new Date()}); } function broadcastMessageFromSocket(socket, body) { socket.broadcast.emit('message', {body: body, timestamp: new Date()}); } var socketIntervals = {}; function stopBroadcastFromSocket(socket) { if(socketIntervals[socket.id]) { clearInterval(socketIntervals[socket.id]); } } function startBroadcastFromSocket(socket, seconds) { socketIntervals[socket.id] = setInterval(function(){ broadcastMessageFromSocket(socket, 'Hello!'); }, seconds*1000); }