how to get session id of client in Client

socket = io client example
socket io client side get id
socket = io authentication
socket = io client disconnect
socket = io error handling
socket = io multiple clients
socket = io websocket private chat

I want to get session id of client in my client.

here is my client :

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

I want to get session id of this client , how can i get that ?

Have a look at my primer on exactly this topic.


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

sio = sio.listen(app);

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

  // send the clients id to the client itself.

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

How to get socket's session id in client side.. This is my service in , Issue #2746 · socketio/ · GitHub. Skip to content. Sign up. Yes, every time while connecting the socket we get different session I'd.It means this is session id.Now,how to fetch socket id ? Which will remain same for particular device? – Rahul Kushwaha Nov 29 '19 at 17:36

On >=1.0, after the connect event has triggered:

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

set session id to socket in nodejs · GitHub, sessionID.js. /** app.use(express.session({ console.log('Express server listening on port ' + app.get('port'));. }); var io = require('').listen(server);. Questions: I know how to retrieve the client sessionID when the user connects. But I’d like to retrieve it at any time, for example when the client clicks on something, I would like to be able to know who clicked, what their sessionID was. socket.sessionID doesn’t work, nor does socket.handshake.sessionID For example : I have

I just had the same problem/question and solved it like this (only client code):

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

io.on('connect', function () {

Client API, io-client instance tries to establish a polling transport. GET​ should be available once the socket is connected, that is, when the connect event is triggered. It may not be the case where you put your console.log(; Copy link Quote reply

* Please Note: as of v0.9 the set and get API has been deprecated *

The following code should only be used for version < 0.9 See:

It can be done through the handshake/authorization mechanism.

var cookie = require('cookie');
io.set('authorization', function (data, accept) {
    // check if there's a cookie header
    if (data.headers.cookie) {
        // if there is, parse the cookie
        data.cookie = cookie.parse(data.headers.cookie);
        // note that you will need to use the same key to grad the
        // session id, as you specified in the Express setup.
        data.sessionID = data.cookie['express.sid'];
    } else {
       // if there isn't, turn down the connection with a message
       // and leave the function.
       return accept('No cookie transmitted.', false);
    // accept the incoming connection
    accept(null, true);

All the attributes, that are assigned to the data object are now accessible through the handshake attribute of the connection object.

io.sockets.on('connection', function (socket) {
    console.log('sessionID ' + socket.handshake.sessionID);

Server API, 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. The Socket.IO-sessions module solution exposes the app to XSS attacks by exposing the session ID at the client (scripting) level. Check this solutioninstead (for Socket.IO >= v0.7).

On Server side

io.on('connection', socket => {

On Client side

import io from '';

socket = io.connect('http://localhost:5000');
socket.on('connect', () => {

If, doesn't work, make sure you call it in on('connect') or after the connection.

Internals overview, Socket.IO allows you to send messages back and forth with browser clients that connect with … - Selection IO client library, he will get a copy of socket.html (​which might be the code in Example 7-17). Each client gets its own sessionId . I came across the same problem with the latest version of node (1.4.2), and

Project: SocketChat, more complex. Since web socket connections are long lived, I needed to find a way to prevent this. IO provides a built-in mechanism to generate a unique socket id which we will use to identify our client's socket connection. Next, we create a To force a single session, our server has to smarten up. I am trying to use Socket.IO in Node.js, and am trying to allow the server to give an identity to each of the Socket.IO clients. As the socket code is outside the scope of the http server code, it doesn't have easy access to the request information sent, so I'm assuming it will need to be sent up during the connection.

javascript how to get session id of client in Client?, If a Socket.IO handler makes a change to the user session, a new version of the session cookie would need to be sent to the client, and there is no standard way to do that. Flask-Socketio's New Managed Sessions Setting

Socket.IO - Node: Up and Running [Book], Upon connection, the server assigns the client a unique session identifier. The applicaction can find this identifier in the sid attribute: print ( 'my sid is' , sio . sid )

  • got by socket.transport.sessionid.
  • socket.sessionid or socket.transport.sessid
  • possible duplicate of custom client ID
  • Please tell how to get session id in client ?
  • It's in the cookie. Either grab it from there (document.cookie) or explicitly send it to the client from the server.
  • I checked in document.cookie in the one client conencted but it is blank .
  • What session id are we talking about?
  • socket.socket.sessionid, or as in this example client.socket.sessionid
  • I could only get it after socket.on 'connect'
  • @webjay yeah, property is only assigned on connect event, not before.
  • so you set the engine now how you grab it from server?
  • that worked for me! did NOT have to use it on socket.on 'connect'
  • This returned 'undefined' for me with 1.4.5
  • thanx for the information, i guess changed a bit since 2013 :) - i will test it soon and update my answer.
  • The event function receives a variable, which has what you seek: io.on('connection', function(client) { console.log(; });