我正在使用express和socket.io。我想在socket.io中访问一些req.session
个变量。我在socket.io and session上阅读了这篇文章,我仍然对如何获得req.session
变量感到困惑。
答案 0 :(得分:7)
实现此目的的一种方法是在套接字内部使用会话存储 - 这将包含您所有的会话变量。这是我进行授权的方式(将cookie ID与数据库中的会话ID进行比较)。
io.set('authorization', function (data, accept) {
if (data.headers.cookie) {
data.cookie = utils.parseCookie(data.headers.cookie);
data.sessionID = data.cookie['connect.sid'].split('.')[0].substring(2);
sessionStore.get(data.sessionID, function (err, session) {
// now you have all session variables
});
}
});