是否可以使用 socket.io-node 向选定的用户组发送数据?例如,我如何实现与不同房间的聊天?我不希望 .broadcast() 向所有登录用户发送数据。
问问题
1705 次
2 回答
3
通常,您应该为每个房间提供一个已连接用户的列表,并且这些用户都有一个client
您应该存储在某处的对象。因此,当您想向特定房间发送消息时,您只需遍历该房间的连接用户并访问他们的client
对象并发送数据。
简而言之,您可能只需将数据一个接一个地发送给组中的每个用户。
于 2011-02-09T16:20:43.270 回答
1
socket.io 有一个内置的分组功能
在单个连接的套接字对象上,就像您在新用户连接时获得通过一样,您可以调用 .join('roomName') 其中 roomName 是您要用于标识“房间”的任何字符串,您可以使用房间像“profile/14”这样的名称来创建一个频道来更新用户#14的个人资料。
然后在主 io 对象上执行以下操作:
io.sockets.in('profile/14').emit('newComment', {message:'hello'});
该消息将发送给所有对给定房间进行 .join() 处理的连接。
通常我会让我的客户端在连接上发出一个“hello”事件,该事件标识客户端有兴趣订阅的内容,然后在服务器端我的“hello”事件处理程序处理 .join()'ing 客户端进入需要什么房间
于 2011-12-27T22:35:39.150 回答