gpt4 book ai didi

node.js - 单行检查 socket 是否在给定的房间中?

转载 作者:行者123 更新时间:2023-12-04 01:34:53 25 4
gpt4 key购买 nike

我正在使用带有socket.io的Node.js进行多人纸牌游戏,并且有可供玩家加入的游戏室。

要加入房间,我只需使用:

io.sockets.on('connection', function (socket) {
socket.on('joinRoom', function (gid) {
//gid is game ID - create room name based on this and join the room
var room = 'game'+gid;
socket.join(room);
});
});

我的问题是,检查 socket 是否连接到特定房间的最快方法是什么?我知道我可以将所有套接字放在数组的那个房间中,然后检查目标套接字是否在数组中,但是我猜测应该为此使用更基本的语法。我正在寻找的(用伪代码)将是
if(socket with ID "z8b7dbf98i" is in room "game10")
//do something

最佳答案

对于文档,socket.io似乎没有任何简单的方法可以做到这一点。您确实需要检查客户端是否在房间阵列中,或者相反:房间是否在客户端阵列中。

这可以通过使用indexOf的oneliner来完成:

if(socket.rooms.indexOf(room) >= 0)

或相反的搜索:
if(io.sockets.manager.rooms['/' + room].indexOf(socket.id) >= 0)

关于node.js - 单行检查 socket 是否在给定的房间中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23045245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com