我正在尝试基于Node.js创建一个聊天应用程序.我想强制websocket服务器(ws库)使用ExpressJS会话系统.不幸的是,我卡住了.用于获取会话数据的MemoryStore哈希值与cookie中的会话ID不同.有人可以解释一下我做错了什么吗?
Websocket服务器代码部分:
module.exports = function(server, clients, express, store) {
server.on('connection', function(websocket) {
var username;
function broadcast(msg, from) {...}
function handleMessage(msg) {...}
express.cookieParser()(websocket.upgradeReq, null, function(err) {
var sessionID = websocket.upgradeReq.cookies['sid'];
//I see same value in Firebug
console.log(sessionID);
//Shows all hashes in store
//They're shorter than sessionID! Why?
for(var i in store.sessions)
console.log(i);
store.get(sessionID, function(err, session) {
websocket.on('message', handleMessage);
//other code - won't be executed until sessionID in store
websocket.on('close', function() {...});
});
});
});
}
Run Code Online (Sandbox Code Playgroud)
商店对象定义:
var store = new express.session.MemoryStore({ …Run Code Online (Sandbox Code Playgroud)