【问题标题】:How to use sessionID with express and socket.io如何在 express 和 socket.io 中使用 sessionID
【发布时间】:2014-07-06 20:34:56
【问题描述】:

我试图在我的整个网络应用程序中保存会话数据,但我很难在任何地方获得相同的 sessionID。

这个sn-p代码中的sessionID有什么用(与express一起使用):

app.get('/test-page', function(req, res) {
    console.log(req.sessionID);
});

每次打开页面时,我都会在这里获得一个新的 sessionID。

此外,我正在使用此代码从我的 socket.io 中的 cookie 获取 sessionID:

io.set('authorization', function(handshakeData, accept) {
    if (handshakeData.headers.cookie) {
        handshakeData.cookie = parseCookie(handshakeData.headers.cookie);
        handshakeData.sessionID = handshakeData.cookie['express.sid'];
    } else {
        handshakeData.sessionID = -1;
    }
    accept(null, true);
});

io.sockets.on('connection', function(socket) {
    console.log('client connected, ssID: ' + socket.handshake.sessionID);
});

如何在 app.get('/test-page',... 中获取相同的会话?反之亦然。

【问题讨论】:

  • 您可以将 Seesion ID 附加到套接字对象中,然后在“连接”事件中也可以使用它

标签: node.js session express socket.io


【解决方案1】:

我从来没有弄清楚这一点,但你总是可以重写express.io

查看sessions example,似乎正是您所需要的。

【讨论】:

    猜你喜欢
    • 2014-04-24
    • 2012-10-17
    • 2014-10-20
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 2018-06-17
    相关资源
    最近更新 更多