我在nodejs上有这段代码:
var server = net.createServer(function(socket) {
clients.push(socket);
function broadcast(message) {
clients.forEach(function (client) {
client.write(message);
});
}
broadcast("Hey");
}
如何在不使用“FOR(i ++)”的情况下将此功能发送到特定客户端 我需要最快的解决方案因为将有超过1 000个++ concurent连接。
例如:
ID 1 -> room 1
ID 2 -> room 1
ID 3 -> room 2
因此ID 1和ID 2将共享数据,ID甚至不知道它。
答案 0 :(得分:2)
我不确定我是否帮助您,但是如果您需要向某些特定客户发送某种消息或事件
然后,如果这些客户是特定的,那么您就不必遍历这些客户端。 Nodejs socketio为此提供聊天室 你应该让那些特定的客户加入一个特定的房间,然后只是将消息发送给所有加入房间的人 我提供了一小段代码作为例子
socket.join("roomName");
socket.broadcast.to("roomName").emit( 'message' ,'body of message');
io.sockets.in("roomName").emit('message','body of next message');
我必须补充一点,它很容易使用,即使roomName不存在,它将由第一行命令创建
答案 1 :(得分:1)
我说你做这件事的方式是最好的,但是如果你想把球打到墙上,你可以查看http://nodejs.org/api/cluster.html。