最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何在NodeJs中没有请求的情况下访问会话数据?

运维笔记admin12浏览0评论

如何在NodeJs中没有请求的情况下访问会话数据?

如何在NodeJs中没有请求的情况下访问会话数据?

我正在构建一个基于套接字的Web应用程序。用户登录后,我将其数据保存到session (express-session)。现在问题是当用户打开房间然后套接字发出是呼叫而在服务器端没有req数据,因为我需要在打开房间之前检查用户ID。以下是我的代码。

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 
};
回答如下:

你可以使用this 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
发布评论

评论列表(0)

  1. 暂无评论