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);
});
上面是一个返回这个错误的例子。