socket.io – 广播给某些用户

我需要使用websockets(socket.io + node.js)来构buildtwosome聊天。 所以,向所有用户广播消息的简单例子:

socket.on('user message', function (msg) { socket.broadcast.emit('user message', socket.nickname, msg); }); 

但是,我怎样才能从某个用户向某个用户播放?

有两个可能性:

1)每个套接字都有自己的唯一标识存储在socket.id 。 如果你知道这两个用户的ID,那么你可以简单地使用

 io.sockets[id].emit(...) 

2)定义你自己的ID(例如用户名)并使用

 socket.join('priv/John'); 

connection处理程序。 现在,只要你想发送消息给John ,你只需要做

 socket.broadcast.to('priv/John').emit(...) 

注意:所提供的第一个解决scheme不能缩放到多台机器,所以我build议使用第二个解决scheme。