将数据发送到nodejs中的特定套接字

时间:2014-03-12 16:36:39

标签: node.js sockets

我在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甚至不知道它。

2 个答案:

答案 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