2017-04-08 8 views
0

私は、管理者が望むときにすべてのユーザーを部屋から切断しようとしています。Sockect.ioルーム内のすべてのユーザーを切断する

var io = require('socket.io'), 
    http = require('http'), 
    server = http.createServer(), 
    io = io.listen(server); 

    io.sockets.on('connection', function(socket){ 
     //socket.join('groupname'); 
     console.log('User connected'); 

     socket.on('disconnect',() => { 
     console.log('User disconnected...'); 

     }) 

//This is how the room is connected to 
    socket.on('group', function(groupname) { 
     socket.join(groupname); 
    }); 

    socket.on('completed', function(groupname) { 
     var users = io.nsps["/"].adapter.rooms[groupname] 
       console.log(users) 
      for(var i = 0; i < users.length; i++){ 
       console.log(users[i])///undefined 
      } 

     }); 

    }) 

socket.on('completed', function(groupname) { 
     var users = io.nsps["/"].adapter.rooms[groupname] 
     Object.keys(users.sockets).forEach(function(socketId){ 
       console.log(groupname+" client socket Id: " + socketId); 
       socketId.disconnect(); 
      }); 
     }); 

を試してみました:私は接続していますどのように切断したり、これは部屋

を残すようにしようとしたとき 私は部屋からソケットIDを取得しますが、エラーを取得することができますどんな助けもありがたいです Roy

答えて

0

Soc内でのデータ管理を明確にするため、tienthanh8490に感謝します。ケータイ

私が前にやっていたことは、特に私の2番目の例があったと思います。文字列の関数を起動しようとしています!

とにかく、これは部屋に

socket.on('completed', function(groupname) { 
     io.of('/').in(groupname).clients(function(error, clients){ 
     if (error) throw error; 
     for(var i=0; i <clients.length; i++){ 
      io.sockets.connected[clients[i]].disconnect(true) 
     } 
     }); 

この切断すべてのユーザーの作品

関連する問題