node.js socket.io如何发送到特定的客户端?

我想“发射”一个消息到一个特定的客户端,这个客户端是根据另一个客户端接收到的另一个消息来select的,我该怎么做?

我想把每个客户join自己的“房间”然后播放。 有没有更好的办法?

更新为socket.io版本1.0和以上

io.to(socketid).emit('message', 'whatever'); 

对于旧版本:

您可以将每个客户端作为一个属性存储在一个对象中。 然后,您可以根据消息查找套接字:

 var basket = {}; io.sockets.on('connection', function (socket) { socket.on("register", function(data) { basket[data.nickname] = socket.id; }); socket.on("privmessage", function(data){ var to = basket[data.to]; io.sockets.socket(to).emit(data.msg); }); }); 

没有testing…但它应该给你一个想法

对于socket.io版本1.0使用:

 io.to(socketid).emit('message', 'whatever');