javascript - 发送到房间,并使用每个套接字的单独属性作为参数

标签 javascript node.js socket.io

我想向一组套接字发出一个函数,为该函数提供一个特定于每个套接字的参数。

在我的代码中,这个特定变量是玩家的号码。当套接字加入房间时,该属性的设置取决于游戏中已有的玩家数量。例如:

socket.player = 1;

我房间里的所有 socket 都会有一个 socket.player 值。简而言之,发送到房间中每个套接字的函数应该将该套接字的 .player 属性作为参数。澄清一下,我是从任何 socket.on 范围之外发出的。

最佳答案

var namespace = '/';
var roomName = 'my_room_name';
for (var socketId in io.nsps[namespace].adapter.rooms[roomName]) {
    var socket = io.sockets.connected[socketId];
    socket.emit('function name', socket.player);
}

当需要时,不要害怕在 for 循环中使用 emmit,实际上,当你在房间中广播或 emmit 时,socket.io 正在使用相同的东西。

关于javascript - 发送到房间,并使用每个套接字的单独属性作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245591/

相关文章:

javascript - Node.js create-react-app 构建

node.js - 如何在socket.io中检测客户端socket服务器授权失败?

javascript - 使用 Interact.js 进入 Dropzone

node.js - 使用 mongoose 时需要显式关闭连接吗?

javascript - 对链接数组进行排序

Node.js - 如何在 node.js 应用程序中获取我的外部 IP 地址?

json - 如何在 fabricjs 中恢复/重用 json 序列化对象?

node.js - 使用 Nodejs 和 Socket IO 的多人游戏

渲染部分 rails 后 JavaScript 不工作

javascript - Mongoose/MongoDB 创建集合(如果不存在则基于架构)