Ich weiß, wie die Client-Sitzungs-ID abgerufen wird, wenn der Benutzer eine Verbindung herstellt.
Aber ich möchte es jederzeit abrufen, zum Beispiel wenn der Kunde auf etwas klickt, würde ich gerne wissen, wer geklickt hat, was ihre Sitzungs-ID war.
socket.sessionID
funktioniert nicht, noch socket.handshake.sessionID
Zum Beispiel:
Ich habe diesen Express-Weg:
%Vor% Kurz vor der Weiterleitung möchte ich, dass der Benutzer einem Socket-Raum beitritt und auch seine SessionID erhält. Wie könnte ich das tun? Laut dem Dokument wäre es socket.join('room')
, aber ich bezweifle, dass socket
nur die Verbindung darstellt, die ich mit dem Client habe, und nicht mit den anderen Clients. Vielleicht habe ich nur Probleme, Sockets zu verstehen!
Ich bin mir nicht sicher, was Sie genau meinen, denn "wenn der Kunde auf etwas klickt" geht davon aus, dass Sie "clientseitig" meinen (wo Sie socket.socket.sessionid
verwenden können), aber "in einem Array von Clients speichern". Angenommen, Sie meinen "serverseitig" (wo Sie auf socket.id
zugreifen können).
Client-Seite:
%Vor%Server-Seite:
%Vor% Ich verwende socket.io Version 2.0.4 und Sie können jederzeit auf die Client-ID zugreifen, indem Sie this.id
in einem Handler verwenden. Zum Beispiel:
Offensichtlich wird die Handler-Funktion im Socket-Kontext selbst ausgeführt, was Ihnen ebenfalls Zugriff auf andere Self-Eigenschaften wie client
(verbundenes Client-Objekt), request
(aktuelles Request-Objekt wird verarbeitet) usw. ermöglicht Hier können Sie die vollständige API Ссылка
Tags und Links javascript sockets node.js socket.io express