我在socket.io中有这个场景:
套接字连接并加入一个房间,他就是主人。其他插座加入他的房间。当主人断开连接时,我想从这个房间踢出所有其他插座。
我想到了这个:
socket.on('disconnect', function(data){
// if socket's id == room he is the master and kick other sockets from this
// room and join them to a room of their own identified by their ids.
});
我想在没有太多逻辑的情况下执行此操作,并且循环停止应用程序。有可能像io.sockets.leave(socket.room)
这样的东西吗?
答案 0 :(得分:5)
alessioalex的答案返回错误,因为它试图在一组套接字上调用“leave”。这是一个有效的解决方案:
io.sockets.clients(socket.room).forEach(function(listener) {
listener.leave(socket.room);
});
答案 1 :(得分:4)
我不是百分百肯定,但在github上阅读Socket.IO's documentation后我认为这应该有效:
io.sockets.in(socket.room).leave(socket.room);