Socket.io : Obtenir Client id de session à tout moment

Je sais comment faire pour récupérer le client id de session lorsque l'utilisateur se connecte.

Mais j'aimerais le récupérer à tout moment, par exemple lorsque le client clique sur quelque chose, je voudrais être en mesure de savoir qui a cliqué, ce qui leur sessionID a été.

socket.sessionID ne fonctionne pas, ni ne socket.handshake.sessionID

Par exemple :

J'ai cette voie expresse :

.get('/result/:survey', function(req, res) {
    res.redirect('/result/'+req.params.survey+'/1');
})

Juste avant la redirection, j'aimerais que l'utilisateur joindre un socket de la salle, et également obtenir leur id de session. Comment pouvais-je le faire ? Selon le doc, il serait socket.join('room') mais je doute socketne représente que la connexion que j'ai avec le client, et pas avec les autres clients. Peut-être que je suis juste avoir de la difficulté à comprendre les sockets !

  • Une fois que vous rediriger vers une autre URL, la prise de connexion sera perdue (ils ne sont pas persistants chargement de la page) et votre client aura à se re-connecter (et d'obtenir un nouveau socket id).
  • Ooooh bien. Mais leur handshake.sessionID devrait rester le même, droite ?
  • Semble que vous devriez être en utilisant un cookie pour stocker les clientId il est donc toujours unique par client
  • handshake.sessionID ne fait pas partie de la socket.io protocole, mais il est généralement défini à partir de io.set('authorization', ...) par l'analyse des cookies de session. Si c'est ce que vous utilisez, il devrait rester le même, oui.
InformationsquelleAutor Romain Braun | 2013-11-07