访问请求不可用的req.session(例如:连接时的套接字)

时间:2015-02-22 05:45:03

标签: node.js session express socket.io

我需要访问req.session.user._id以获取socket.io在连接用户时检测到的功能。类似下面的代码:

io.on('connection', function(socket){
 console.log('a user connected with the id of: '+req.session.uder._id);
})

我需要在我的io.on('connect')中访问id的原因是告诉与该用户聊天的用户,他是在线还是离线。 因此,如果他在线并经过身份验证,我们会做这样的事情:

io.emit("status:"+req.session.user._id, 'online');

然后其他正在查看此用户状态的用户知道他的状态。

这样做的正确方法是什么? 我应该在io.on('connect')中访问它吗?或者我应该以其他方式做到这一点? 提前谢谢

1 个答案:

答案 0 :(得分:0)

此模块将有助https://www.npmjs.com/package/passport.socketio 它允许对expressjs和socket.io

使用相同的会话存储

https://www.npmjs.com/package/passport.socketio#socketrequestuser-as-of-v1

可以使用授权用户