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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der folgende code funktioniert mit Sockel.IO 1.0, aber ich bin mir nicht sicher, dass dies die beste Lösung:
Update:
Mit Sockel.IO 0.9, würde der code etwas anders:
console.log(io.sockets.connected[socket.id])
eine Idee?Es bedeutet, dass entweder diese Buchse ist getrennt schon, oder
socket.id
Wert ist ungültig. Was bekommen Sie, wenn Sieconsole.log(socket.id);
?Getestet habe ich meine Lösung mit Sockel.IO 1.0
socket.id
funktioniert wie erwartet RückkehrBGGkTQOOBJTcO2YukQLl
etc.. - gerade überprüft und ich bin mit 0.9.16, ich werde versuchen mit 1.0laufen in alle möglichen anderen Fehler versuche meinen pre-1.0-code läuft auf 1.0 (Art erwartet). Ich finde es seltsam, wie schwer es für mich ist zu trennen der Verbindung zu einem client durch den Kunden
socket.id
doch so einfach im Allgemeinen, um das setup-buchsen.io.InformationsquelleAutor Oleg