Her*_*ler 19 websocket node.js socket.io
是否有可能获得插座当前所在的房间,而无需打电话
io.sockets.clients(roomName)
Run Code Online (Sandbox Code Playgroud)
为每个房间名称并在结果中查找此套接字
Arj*_*jen 29
在socket.io版本1+中,语法为:
socket.rooms
Run Code Online (Sandbox Code Playgroud)
socket.io 1.7.3+ - >
var rooms = Object.keys(io.sockets.adapter.sids[socket.id]);
// returns [socket.id, 'room-x'] or [socket.id, 'room-1', 'room-2', ..., 'room-x']
Run Code Online (Sandbox Code Playgroud)
使用3.x
Socket.rooms is Set
now,这意味着房间中的值可能只出现一次。
结构示例: Set(4) {"<socket ID>", "room1", "room2", "room3"}
io.on("connect", (socket) => {
console.log(socket.rooms); // Set { <socket.id> }
socket.join("room1");
console.log(socket.rooms); // Set { <socket.id>, "room1" }
});
Run Code Online (Sandbox Code Playgroud)
要检查特定房间:
socket.rooms.has("room1"); // true
Run Code Online (Sandbox Code Playgroud)
有关 Set 和可用方法的更多信息:https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
迁移文档:https : //socket.io/docs/migrating-from-2-x-to-3-0/
归档时间: |
|
查看次数: |
29805 次 |
最近记录: |