Men*_*joy 2 node.js express socket.io-1.0
我在server.js中有这个代码.
var app = require('express')(),
session = require('express-session'),
cookie = require('cookie'),
cookieParser = require('cookie-parser'),
manager = require('./sockets/manager');
var sessionStore = new session.MemoryStore();
app.use(cookieParser('secret'));
app.use(session({
name: 'sid',
store: sessionStore,
secret: 'secret',
saveUninitialized: true,
resave: true,
cookie: {
path: '/',
httpOnly: true,
secure: false,
maxAge: null
}
}));
var server = require('http').Server(app).listen(8888),
io = require('socket.io')(server);
io.use(function(socket, next) {
var data= socket.request;
if (data.headers.cookie) {
data.cookie = cookie.parse(cookieParser.signedCookie(data.headers.cookie, 'secret'));
console.log('data.cookies ( %s )', JSON.stringify(data.cookie));
// print 'io=id_place', cookies doesn't have sid, why?
if (data.cookie.sid) {
data.sid = request.cookie.sid;
sessionStore.get(request.cookie.sid, function(err, session) {
request.session = session;
});
}
}
next();
});
manager.use(io);
Run Code Online (Sandbox Code Playgroud)
控制台日志向我显示此cookie request.cookies({"io":"lHKSseNH5UrnJisSAAAA"}).我刚刚看到了很多使用expressjs 3和socket 0.9的例子,但我有:
"socket.io":"^ 1.0.6","express":"~4.5.1","express-session":"~1.6.4"
它不起作用.
我有什么错误吗?
| 归档时间: |
|
| 查看次数: |
5571 次 |
| 最近记录: |