node.js - 仅向房间中的一组客户端发出套接字事件

标签 node.js socket.io

我正在使用 Node 和套接字 io 构建实时应用程序。

我的问题是:

在我的客户端,我有

socket.emit('adduser', username);

在我的服务器端我有

socket.on('adduser', function(username) {
 io.sockets.in(socket.room).socket.emit('user-added', somedata);
}

现在再次来到客户端,我有一个用户添加的监听器

socket.on('user-added', function(somedata) {
// get shit done!
}

现在假设我连接了 3 个客户端,并且它们都共享相同的脚本。 根据我对套接字io的理解,当我说io.sockets.in(socket.room).socket.emit时该事件将发送给特定房间中所有连接的客户端。

举例来说,我只希望客户端 1 和客户端 3 收听此 'user-added'事件

如何实现这一目标?

最佳答案

如果您不想向同一房间中的所有用户发送信息,那么您可以使用以下命令根据其 ID 向特定客户端发送信息。

io.sockets.socket(socketid).emit('user-added', {data: yourData});

关于node.js - 仅向房间中的一组客户端发出套接字事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21332395/

相关文章:

node.js - 使用 AJAX 或 Socket.io 自动完成?

javascript - 服务器本身捕获的套接字 io 发出

node.js - PM2 和 DotEnv 在 ubuntu 服务器上无法工作的问题

node.js - PM2 日志输出限制

javascript - 函数未定义 | Node .js

node.js - 在 Node.js 中等待多个回调

javascript - 无法为 SOAP Node.js 制定响应对象

node.js - Socket.io 1.4.5 房间问题

node.js - Socket.io 客户端未与服务器连接

node.js - socket.io 在连接时加入多个房间