Home

Awesome

Access Express session from socket.io.

Build Status

Installation

npm install socket-io.sessions

Usage


  //configure passport and express

  var socketIo = require("socket.io"),
    socketIoSessions = require("socket-io.sessions");

  var sio = socketIo.listen(webServer);


  //same attribute than the session middleware http://www.senchalabs.org/connect/middleware-session.html

  sio.set("authorization", socketIoSessions({
    key:    'express.sid',       //the cookie where express (or connect) stores its session id.
    secret: 'my session secret', //the session secret to parse the cookie
    store:   mySessionStore      //the session store that express uses
  }));

  sio.sockets.on("connection", function(socket){
    
    socket.handshake.getSession(function (err, session) {
      socket.emit('aaa!', session.someSessionProperty);
    });

  });

Change the session


socket.handshake.getSession(function (err, session) {
  session.something = 123;
  socket.handshake.saveSession(session, function (err) {
    //whatever
  });
});

Use with passport-socket.io

  var sessionOptions = {
    key:    'express.sid',      
    secret: 'my session secret',
    store:   mySessionStore     
  };
  //chain the two this way:
  sio.set("authorization", socketIoSessions(sessionOptions, passportSocketIo.authorize(sessionOptions)));

Develop

npm install npm test

License

MIT - José F. Romaniello 2012.