让特定的插座离开房间

时间:2016-10-05 17:38:15

标签: socket.io

我正在尝试取消订阅套接字并让它离开他所在的房间。我知道他的socket.id,为了让你更好理解,当房间的创造者离开时,一个特定的插座/所有套接字应该离开。 TY!

1 个答案:

答案 0 :(得分:7)

要离开房间,请使用:

socket.leave(roomName);

如果您的套接字只有socket.id,那么您可以使用以下内容获取与该ID对应的套接字:

let socket = io.sockets.connected[id];
socket.leave(roomName);

如果你想让每个人都离开特定的房间,你可以这样做:

function clearRoom(room, namespace = '/') {
    let roomObj = io.nsps[namespace].adapter.rooms[room];
    if (roomObj) {
        // now kick everyone out of this room
        Object.keys(roomObj.sockets).forEach(function(id) {
            io.sockets.connected[id].leave(room);
        })
    }
}

所有这些代码只在服务器上运行,因为房间只是服务器端的概念。