gpt4 book ai didi

node.js - 如何获取套接字 1.4 中的套接字房间名称?

转载 作者:太空宇宙 更新时间:2023-11-03 21:56:18 24 4
gpt4 key购买 nike

如果可能的话,我正在寻找一种方法或命令行来获取套接字房间名称。任何想法或提示都将受到高度赞赏!例如,如果房间的名称是“roomName”,我正在寻找这个值,ty!

最佳答案

一个socket.io套接字可以位于多个房间。事实上,当套接字首次连接时,它会自动放置到与 socket.id 值同名的房间中。

如果您想要获取连接服务器端套接字所在的所有房间的列表,则可以使用 socket.rooms。这是一个列出套接字所在的所有房间的对象。如果您只想要套接字所在的房间名称数组,可以使用以下内容:

let rooms = Object.keys(socket.rooms);

如果你想消除与socket.id匹配的自动生成的房间,你可以这样做:

let rooms = Object.keys(socket.rooms).filter(function(item) {
return item !== socket.id;
});
<小时/>

如果您尝试从客户端获取此信息,则无法从客户端套接字获取该信息。您必须询问服务器该客户端位于哪个房间,或者您必须有一个系统,在该系统中客户端会收到有关其所在房间的通知并跟踪该数据。 socket.io 客户端不知道它在哪个房间。

<小时/>

socket.io 中需要注意的另一件事。我在加入房间时看到了一些异步行为,这意味着如果您 socket.join("someRoom") 然后立即查询 socket.rooms,新房间可能不会还在那里。如果您在下一个时间点查询 socket.rooms,它就会在那里。我不确定这种情况是否总是发生或仅在某些情况下发生。

关于node.js - 如何获取套接字 1.4 中的套接字房间名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39836410/

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