используйте req.user внутри обычной функции и перейдите к socket.io - PullRequest
0 голосов
/ 10 марта 2019

Я пытаюсь присоединить req.user.id (из сеанса паспорта) к каждому сокету, который создается при подключении.Поскольку я не могу получить доступ к req.user извне промежуточного программного обеспечения или маршрута и в результате получить ошибку с идентификатором undefined,

, как мне каким-то образом получить доступ к этому и передать его в мою экспортированную функцию сокета?.

Я бы использовал app.use (getSocket ()), который позволил бы мне использовать req.user внутри функции, но это инициировало бы соединение более одного раза.

// Workspace route

var server   = require('../server.js').serverExport();

var authUser = require('../server.js');
var io       = require('socket.io') ( server );
var socket   = require('./middleware/pusherApi');

function getSocket ( ) { 
    // somehow pass req.user
    var getSocket = socket.connect( io , req.user );
}
getSocket();

// get routes would be below

тогда

// pusherApi export function

module.exports.connect = function ( io , user ) {
      io.sockets.on('connection', function( socket ) {

            // socket.userId = user;

            console.log('connection added' );
            socket.on('disconnect', function ( data ) {
             });
      });
}
...