Socket.io-disconnect-client-id

Ich bin neu auf nodejs und zu schreiben versucht, einen chat-Raum, wie so viele Menschen haben.
Der chat besteht aus mehreren Zimmern und Kunden. Befehle wie /nick /join /help /ls users /ls rooms Arbeit, wie man erwarten würde, obwohl ich Probleme habe mit immer ein /kick Befehl zu arbeiten.

Ich bin nur nicht sicher, wie Sie Sie trennen client-id, so weit /kick client ist in der Lage zu präsentieren, den jeweiligen Kunden-Buchse.id obwohl ich stecken geblieben bin für die code-kick via socket.id.

Code so weit:

Trennen client gesandt /kick: socket.disconnect();

Löschen client von arg /kick client: delete io.sockets.sockets[client];

Löschen der client nicht trennen, obwohl, können Sie immer noch Daten empfangen, nur nicht senden.

Gelöst

CuriousGuy s 0.9 funktionierte einwandfrei, für Interessierte - hier ist der code, den ich verwende.

Server-Seite:

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

Client-Seite:

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

InformationsquelleAutor rwxes | 2014-06-28

Schreibe einen Kommentar