ExpressJS & Websocket & session sharing

后端 未结 5 1371
情书的邮戳
情书的邮戳 2020-12-01 09:30

I\'m trying to make a chat application based on Node.js. I\'d like to force websocket server (ws library) to using ExpressJS session system. Unfortunately, I\'ve got stuck.

5条回答
  •  萌比男神i
    2020-12-01 10:03

    I was able to get this working. I think you need to specify the secret on cookieParser instead of session store.

    Example from my app:

    var app = express();
    var RedisStore = require('connect-redis')(express);
    var sessionStore = new RedisStore();
    var cookieParser = express.cookieParser('some secret');
    
    app.use(cookieParser);
    app.use(express.session({store: sessionStore}));
    
    
    wss.on('connection', function(rawSocket) {
    
      cookieParser(rawSocket.upgradeReq, null, function(err) {
        var sessionID = rawSocket.upgradeReq.signedCookies['connect.sid'];
        sessionStore.get(sessionID, function(err, sess) {
          console.log(sess);
        });
      });
    
    });
    

提交回复
热议问题