访问会话存储在另一台服务器上的Socket.IO中的redis中

时间:2015-04-23 09:42:04

标签: node.js session socket.io

我有一个Kraken应用程序,它使用Passport和redis作为会话存储。 在客户端上,我还使用socket.io连接,基于与我的应用程序不同的服务器。

我已经将Redis设置为双方的会话存储,使用相同的URL,它似乎工作正常(因为我没有看到套接字服务器上的错误)。但是,我似乎无法在套接字端检索会话信息。

目前,我已将Kraken配置为:

{
   "secret": "SuperSecret",
   "cookie": {
              "path": "/",
              "httpOnly": true,
              "originalMaxAge": 86400,
              "maxAge": 86400
             },
   "proxy": null
 },

并且创建的cookie反映了客户端上的内容(maxAge匹配)

然而在插座方面,我得到了这个:

session: 
   { cookie: 
      { path: '/',
        _expires: null,
        originalMaxAge: null,
        httpOnly: true } 
      }
   }

我通过套接字端的中间件连接到商店:

var sessionMiddleware = session({
    store: new RedisStore(config.redisFront),
    secret: "SuperSecret",
});
io = require('socket.io')(5000);
io.use(function(socket, next) {
    sessionMiddleware(socket.request, socket.request.res, next);
});

socket.request.sessionID和res.sessionID中的sessionID也不同。在我的方法中,我是忽视某些事情还是仅仅是错误的?如果您需要更多信息,请告诉我,我很乐意提供相关信息。

0 个答案:

没有答案
相关问题