【发布时间】:2015-03-26 18:22:43
【问题描述】:
在过去的几天里,我一直在尝试从 socket.io 共享一个快速会话,但我无法理解它。我将 express 4.11.1 与 socket.io 1.3.2 一起使用(其他依赖项是 express-session 1.10.1、cookie-parser 1.3.3 和 body-parser 1.10.2)。我基本上是将客户端数据从 express 放入会话中,并希望在 socket.io 中使用该信息,因为套接字在重新连接时会丢失信息。我所做的基本上是 here 所做的,但它对我不起作用。
var express = require('express'),
app = express(),
session = require('express-session'),
cookieParser = require('cookie-parser'),
sessionStore = new session.MemoryStore(),
bodyParser = require('body-parser');
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var port = process.env.PORT || 3000;
var sessionMiddleware = session({
name: 'sid',
store: sessionStore, // MemoryStore
secret: 's3cr37',
saveUninitialized: true,
resave: true,
});
io.use(function(socket, next) {
sessionMiddleware(socket.request, socket.request.res, next);
});
app.use(sessionMiddleware);
app.use(bodyParser.json())
server.listen(port, function() {
console.log('Server listening at port %d', port);
});
app.post('/login', function(req, res){
//just storing the info in session
req.session.username = req.body.user;
...
});
io.on('connection', function(socket) {
//using socket.request.session.username which doesn't work
...
});
任何帮助将不胜感激
【问题讨论】:
标签: javascript node.js express socket.io socket.io-1.0