51 votes

comment obtenir l'identifiant de session du client socket.io dans Client

Je veux obtenir l'identifiant de session du client dans mon client socket.io.

voici mon client socket.io :

 var socket = new io.Socket(config.host, {port: config.port, rememberTransport: false});
    // when connected, clear out display
    socket.on('connect',function() {
        console.log('dummy user connected');
    });
    socket.on('disconnect',function() {
        console.log('disconnected');
    });
    socket.connect();
    return socket;

Je veux obtenir l'identifiant de session de ce client, comment puis-je l'obtenir ?

45voto

Daniel Baulig Points 4849

Jetez un œil à mon abécédaire sur exactement ce sujet.

METTRE À JOUR:

 var sio = require('socket.io'),
    app = require('express').createServer();

app.listen(8080);
sio = sio.listen(app);

sio.on('connection', function (client) {
  console.log('client connected');

  // send the clients id to the client itself.
  client.send(client.id);

  client.on('disconnect', function () {
    console.log('client disconnected');
  });
});

44voto

Hallucynogenyc Points 2585

Sur socket.io >=1.0, après le déclenchement de l'événement connect :

 var socket = io('localhost');
var id = socket.io.engine.id

10voto

luschn Points 6092

Je viens d'avoir le même problème/question et je l'ai résolu comme ceci (uniquement le code client):

 var io = io.connect('localhost');

io.on('connect', function () {
    console.log(this.socket.sessionid);
});

6voto

Shubham Kushwah Points 85

Côté serveur

 io.on('connection', socket => {
    console.log(socket.id)
})

Côté Client

 import io from 'socket.io-client';

socket = io.connect('http://localhost:5000');
socket.on('connect', () => {
    console.log(socket.id, socket.io.engine.id, socket.json.id)
})

Si socket.id , ne fonctionne pas, assurez-vous de l'appeler en on('connect') ou après la connexion.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X