Задать вопрос
Ответы пользователя по тегу Node.js
  • Как связать Socket.IO с сессиями express-session?

    @Quickerz
    Вариант 1. Пишем свой middleware, который будет шарить сессию

    var express = require("express");
    var Server = require("http").Server;
    var session = require("express-session");
    var RedisStore = require("connect-redis")(session);
    
    var app = express();
    var server = Server(app);
    var sio = require("socket.io")(server);
    
    var sessionMiddleware = session({
        store: new RedisStore({}), 
        secret: "secret",
    });
    
    sio.use(function(socket, next) {
        sessionMiddleware(socket.request, socket.request.res, next);
    });
    
    app.use(sessionMiddleware);
    
    app.get("/", function(req, res){
        req.session 
    });
    
    sio.sockets.on("connection", function(socket) {
      socket.request.session // Теперь сессия доступна через сокет
    });
    
    
    server.listen(8080);


    Вариант 2. Используем https://github.com/techpines/express.io
    Вариант рабочий, но есть нюансы с апи экспресса. Местами оно немного устаревшее.
    Ответ написан
    1 комментарий