У меня проблемы с обновлением сессии.Я использую пакет с именем express-socket.io-session
.Работает, делюсь сессией;Я могу получить к нему доступ, как и должен.
Однако, когда я пытаюсь обновить сеанс с помощью промежуточного программного обеспечения для обновления информации о пользователях, он показывает не обновленный сеанс, а предыдущую не обновленную версию.
Я пытался вызвать socket.handshake.session.reload()
, когда пользователь подключается к сокету, однако это ничего не изменило.
соответствующий код app.js
var sharedsession = require('express-socket.io-session');
app.use(session);
io.use(sharedsession(session, {
autoSave: true
}));
app.use(async function(req, res, next){
req.session.passport.database = ..updated user data here..
next();
});
socket.js
var socketio = require('socket.io');
var io = socketio();
var socket = {};
socket.io = io;
io.on('connection', function(socket){
//Reload the session
socket.handshake.session.reload(function(err){
if(err) console.log(err);
console.log('updated');
});
var session = socket.handshake.session,
user = session.passport.user;
console.log(user);
});
module.exports = socket;
Я ожидаю обновленного сеанса.Как сделать так, чтобы сеанс обновлялся правильно, когда пользователь подключается?