Socket.io débranchez client par id

Je suis nouveau sur nodejs et d'essayer d'écrire une salle de chat, comme beaucoup de gens l'ont.
Le chat se compose de plusieurs chambres et les clients. Des commandes telles que /nick /join /help /ls users /ls rooms travail comme vous vous en doutiez bien que je vais avoir de la difficulté à obtenir un /kick commande fonctionne.

Je ne suis pas sûr de savoir comment vous déconnecter un client par id, jusqu'à présent /kick client est en mesure de présenter les clients respectifs socket.id bien que je suis coincé pour le code pour le coup via socket.id.

Code de la mesure:

Débranchez client qui a envoyé /kick: socket.disconnect();

Supprimer client à partir de l'arg /kick client: delete io.sockets.sockets[client];

De supprimer le client de ne pas déconnecter les cependant, ils peuvent toujours recevoir des données tout simplement pas l'envoyer.

Résolu

CuriousGuy 0,9 a fonctionné parfaitement, pour ceux qui sont intéressés, voici le code que j'utilise.

Côté serveur:

handleClientKick(socket);

...

function handleClientKick(socket) {
  socket.on('kick', function(client) {
    if (typeof io.sockets.sockets[client] != 'undefined') {
      socket.emit('message', {text: nickNames[socket.id] + ' kicked: ' + nickNames[client]});
      io.sockets.sockets[client].disconnect();
    } else {
      socket.emit('message', {text: 'User: ' + name + ' does not exist.'});
    }
  });
}

Côté Client:

kickClient = function(client) {
  this.socket.emit('kick', client);
};

OriginalL'auteur rwxes | 2014-06-28