【发布时间】:2014-05-26 23:08:44
【问题描述】:
是否可以访问和修改会话变量 从socket.io级别?
请求中的常规示例
req.session.variable = 5
【问题讨论】:
是否可以访问和修改会话变量 从socket.io级别?
请求中的常规示例
req.session.variable = 5
【问题讨论】:
你可以通过这个项目在socket.io中使用session
https://github.com/wcamarao/session.socket.io
或者自己做:
从握手数据中获取 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 中加载会话
sessionStore.load(sessionID, function (err, session) {
if (!err && session) {
//Here you have your session if everything ok
}
});
【讨论】: