Use express-session as socket.io middleware.
Setup
All you have to is adding a middleware like you would in your express app.
var ios = require('socket.io-express-session');
var session = ... configured express-session instance
...
io.use(ios(session));
...
io.on('connection', function(socket){
console.log(socket.handshake.session);
});
Example
var Session = require('express-session'),
SessionStore = require('session-file-store')(Session);
var session = Session({ secret: 'pass', resave: true, saveUninitialized: true });
var express = require('express');
var app = express();
app.use(session);
app.get('/', function (req, res) {
req.session.uid = 1;
res.send('Hi user #' + req.session.uid);
});
var http = require('http');
var server = http.createServer(app);
server.listen(process.env.PORT || '3000');
var ios = require('../../../socket.io-express-session');
var io = require('socket.io')(server);
io.use(ios(session));
io.on('connection', function(socket){
console.log(socket.handshake.session);
});