是否可以访问和修改会话变量 从socket.io级别?
来自请求的常规示例
req.session.variable = 5
答案 0 :(得分:2)
您可以使用此项目在socket.io中使用会话
https://github.com/wcamarao/session.socket.io
或者自己动手:
从handshakedata获取cookie
socket.handshake.headers.cookie
使用cookie模块解析cookie
var cookie = require('express/node_modules/cookie');
var cookies = cookie.parse(socket.handshake.headers.cookie);
Cookie已签名,因此您需要先验证它,然后获取sessionID
var connect = require('express/node_modules/connect');
var sessionID = connect.utils.parseSignedCookie(cookies['connect.sid'], /*The secret you used in your express session*/);
然后您可以从会话仓库加载会话
sessionStore.load(sessionID, function (err, session) {
if (!err && session) {
//Here you have your session if everything ok
}
});