Node.js 如何在会话expressjs中存储套接字对象
我想在用户会话中存储套接字对象。但由于回调中的req对象未持久化更改,因此无法执行。下次我尝试访问它时,它不可用。我该怎么做呢?试试这个:Node.js 如何在会话expressjs中存储套接字对象,node.js,express,socket.io,Node.js,Express,Socket.io,我想在用户会话中存储套接字对象。但由于回调中的req对象未持久化更改,因此无法执行。下次我尝试访问它时,它不可用。我该怎么做呢?试试这个: io.on('connect', function (socket) { req.session.socket = socket; }); yourSessionMiddleware看起来像: io.use(function(socket, next) { yourSessionMiddleware(socket.request, s
io.on('connect', function (socket) {
req.session.socket = socket;
});
yourSessionMiddleware看起来像:
io.use(function(socket, next) {
yourSessionMiddleware(socket.request, socket.request.res, next);
});
io.on('connect', function (socket) {
socket.request.session.socket = socket;
});
请求对象上缺少会话对象。@AnilDukkipatty我的错误,更改了答案。当我包括您提到的midleware函数时,套接字对象事件没有触发“io.on(…)”@AnilDukkipatty会话中间件,该中间件与app.use(yourSessionMiddleware)string一起安装。我使用的是
var session=require('express-session');代码>app.use(session({secret:'somesecret',store:sessionstore.createSessionStore()}))代码>io.use(函数(socket,next){session(socket.request,socket.request.res,next);})代码>
var yourSessionMiddleware = session({
secret: "super secret word"
});