Skip to content

jfromaniello/socket-io.sessions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  });
});
  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.

About

access express.js session from socket.io

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published