Экспресс сессия с помощью socket.io сессий - PullRequest
0 голосов
/ 31 января 2019

Моя проблема в том, что каким-то образом мой сеанс socket.io потерян, и IDK почему.Вот пример:

Здесь при входе я создаю сеанс сокета:

socket.on('login', (userdata) => {
    socket.handshake.session.userdata = userdata;
    socket.handshake.session.save();
});

Через некоторое время, когда я вернулся на сайт, этот сеанс больше не доступен, поэтому я не могу использовать его вдругой сокет вызывает как:

socket.on('lobby-left', (data) => {

    UserLobby.findOne({
        username: socket.handshake.session.userdata.username //  Doesnt find user anymore
    }).then((inLobby) => {

И вот в чем проблема, хотя я снова захожу в систему, я все еще не могу использовать этот сеанс в socket.io И я не понимаю, почему он начинает работать после входа в систему x100 или когдаЯ захожу на сайт через свой смартфон.

Как будто вчера все работало нормально, сегодня я запускаю сервер и вижу, что уже вошел в систему, но эта сессия в сокете больше не существует.Я не могу войти в систему.

Это код сессии:

app.use(cookieParser());
const exsession = require('express-session');
const MongoStore = require('connect-mongo')(exsession);

const session = exsession({
    secret: 'ianevutytsuinliv',
    cookie: {
        maxAge: 24 * 60 * 60 * 1000
    },
    resave: true,
    saveUninitialized: true,
    store: new MongoStore({
        mongooseConnection: mongoose.connection
    })
});


app.use(session);
io.use(sharedsession(session));

Я использую этот пакет: https://www.npmjs.com/package/express-socket.io-session

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...