https://github.com/xpepermint/socket.io-express-session Это один из многих способов, которым я пытался. Я попробовал все эти ответы, а также: How to share sessions with Socket.IO 1.x and Express 4.x? И еще немного ... Все это дает мне exaclty тот же результат:Передача экспресс-сессии в socket.io
throw new TypeError("Parameter 'url' must be a string, not " + typeof url) ^TypeError: Parameter 'url' must be a string, not undefined
Я уже перепробовал все решения я нашел в Интернете, в основном все ведет меня к той же ошибке. В какой-то момент я просто попробовал копировать и вставлять найденные примеры, и они дают мне точно такие же результаты. Я думаю, что что-то пошло не так после одного из обновлений промежуточного программного обеспечения. Как это исправить? Есть ли другой, надежный способ обмена экспресс-сессией с socket.io?
var Session = require('express-session');
var session = Session({ secret: 'pass', resave: true, saveUninitialized: true });
var cookieParser = require('cookie-parser');
var express = require('express');
var app = express();
app.use(cookieParser());
app.use(session); // session support
app.get('/', function (req, res) {
req.session.uid = 1;
res.send('Hi user #' + req.session.uid);
});
var http = require('http').createServer(app);
http.listen(3000, function(){
console.log('listening on *:3000');
});
var ios = require('socket.io-express-session');
var io = require('socket.io')(http);
io.use(ios(session)); // session support
io.on('connection', function(socket){
console.log(socket.handshake.session);
});
Выше приведен пример этой ошибки.