Как получить доступ к данным сеанса без запроса в NodeJs? - PullRequest
0 голосов
/ 16 февраля 2019

Я создаю веб-приложение на основе сокетов.После входа в систему я сохранил данные в session (express-session).Теперь проблема в том, что когда пользователь открывает комнату, то вызовом сокета является вызов, а на стороне сервера нет данных req, потому что мне нужно проверить идентификатор пользователя перед открытием комнаты.Ниже приведен мой код.

server.js

const session = require('express-session');

app.use(session({
    key: 'userid',
    secret: 'zxcvasd',
    resave: false,
    saveUninitialized: false,
    cookie: {
        expires: 6000000
    }
}));

const socketCtrl = require('../controllers/socket.controller');

socket.on('open-broadcast', function (broadcastId) {
    socketCtrl.setBroadcastData(broadcastId);
});

socket.controller.js

exports.setBroadcastData = (broadcastId) => {
     // here I want session data like below
     // const user = req.session.user 
};

1 Ответ

0 голосов
/ 16 февраля 2019

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

var ios = require('socket.io-express-session');
var io = require("socket.io")(server);
io.use(ios(Session));

var sess = socket.handshake.session;
sess.userId
...