2016-05-02 7 views
0

後、私は後に()削除ソケット切断

users = {} 
ids_disconnect = [] 

io.of('/example') 
    .on('connection', function (socket) { 
     var user_id = socket.decoded_token.user; 


     if(users[user_id] === undefined){ 
      users[user_id] = {"socket": socket}; 
     } else { 
      ids_disconnect.push(users[user_id].socket.id); 
      users[user_id].socket.disconnect(true); 
      users[user_id] = {"socket": socket}; 
     } 

     console.log("User Connect: " + user_id + " SocketID: " + socket.id); 



     //disconnect client 
     socket.on('disconnect', function() { 
      console.log('User Disconnect ' + user_id); 
      if(ids_disconnect.indexOf(socket.id) != -1){ 
       console.log('Disconnect Force: ' + user_id); 
       ids_disconnect.splice(ids_disconnect.indexOf(socket.id),1) 
      } else { 
       delete users[user_id]; 
      } 
     }); 
    }); 

} socket.disconnectを実行するサーバからソケットを削除する必要があります。

このコードはサーバーから削除できません。申し訳ありません

私の英語

答えて

0

あなたはそれをトリガする前にdisconnectイベントに耳を傾ける必要があります。

users = {} 
 
ids_disconnect = [] 
 

 
io.of('/example') 
 
    .on('connection', function(socket) { 
 
    var user_id = socket.decoded_token.user; 
 
    //disconnect client 
 
    socket.on('disconnect', function() { 
 
     console.log('User Disconnect ' + user_id); 
 
     if (ids_disconnect.indexOf(socket.id) != -1) { 
 
     console.log('Disconnect Force: ' + user_id); 
 
     ids_disconnect.splice(ids_disconnect.indexOf(socket.id), 1) 
 
     } else { 
 
     delete users[user_id]; 
 
     } 
 
    }); 
 

 
    if (users[user_id] === undefined) { 
 
     users[user_id] = { 
 
     "socket": socket 
 
     }; 
 
    } else { 
 
     ids_disconnect.push(users[user_id].socket.id); 
 
     users[user_id].socket.disconnect(true); 
 
     users[user_id] = { 
 
     "socket": socket 
 
     }; 
 
    } 
 

 
    console.log("User Connect: " + user_id + " SocketID: " + socket.id); 
 
    }); 
 
};

関連する問題