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