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。