这不适用于通过flashsocket传输的套接字(它不会向服务器发送所需的cookie),但可以可靠地用于其他所有事务。我只是在代码中禁用了flashsocket传输。
为了使其工作,在Express / Connect端,我明确定义了会话存储,以便可以在套接字内使用它:
MemoryStore = require('connect/middleware/session/memory'),var session_store = new MemoryStore();app.configure(function () { app.use(express.session({ store: session_store }));});
然后在我的套接字代码中,包含了connect框架,因此我可以使用其cookie解析来从cookie中检索connect.sid。然后,我在具有该connect.sid的会话存储中查找会话,如下所示:
var connect = require('connect');io.on('connection', function(socket_client) { var cookie_string = socket_client.request.headers.cookie; var parsed_cookies = connect.utils.parsecookie(cookie_string); var connect_sid = parsed_cookies['connect.sid']; if (connect_sid) { session_store.get(connect_sid, function (error, session) { //HOORAY NOW YOU'VE GOT THE SESSION OBJECT!!!! }); }});
然后,您可以根据需要使用会话。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)