Socket.io: Abrufen der Client-Sitzungs-ID zu einem beliebigen Zeitpunkt

7

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!

    
Romain Braun 07.11.2013, 14:19
quelle

4 Antworten

19

Ab Version 1.0 erhalten Sie die Sitzungs-ID des Clients auf diese Weise:

%Vor%     
JanS 15.06.2014, 09:18
quelle
3

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%     
robertklep 07.11.2013 14:34
quelle
0

Ich speichere Client-IDs in serverseitigen Event-Handlern einfach mit:

%Vor%     
Luke W 07.11.2013 14:37
quelle
0

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:

%Vor%

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 Ссылка

sehen     
Alex Henry 11.11.2017 18:15
quelle