2016-10-05 6 views
1

私はソケットを退会しようとしていて、彼が入っている部屋から離れるようにしています。私は彼のsocket.idをよく知っています。特定のソケット/すべてのソケットを残す必要があります。タイ!部屋を残すために特定のソケットを部屋に残す

答えて

6

、あなたがこれを使用する:

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); 
     }) 
    } 
} 

このコードはすべて、サーバー側でのみ実行されるため、サーバー上でのみ実行されます。

+0

タイは、この答えをブックマークするつもりです、それはまさに私が探していたものです;) –

関連する問題