我很困惑如何为每个连接到 websocket 的新人提供一个唯一标识,该标识只能影响他自己在服务器上的信息。websocket 上的信息是广播的,所以每个人都从服务器接收信息。我为此使用套接字 io。
问问题
2104 次
1 回答
1
没有足够的信息来提供适合您需求的答案,但是这是使用 express.js 内存存储与套接字共享会话数据的常用方法。
var sio = require('socket.io'),
parseCookies = require('connect').utils.parseSignedCookies
// authorization for sockets
io.set('authorization', function (hsData, accept) {
//get the handshake data for the socket
if(hsData.headers.cookie) {
//parse the cookies from the handshake data
var cookies = parseCookies(cookie.parse(hsData.headers.cookie), "session secret"),
sid = cookies["session path"];
//load your session store and find the user
sessionStore.load(sid, function(err, session) {
hsData.user = session.user;
return accept(null, true);
});
} else {
return accept('No cookie transmitted.', false);
}
});
io.sockets.on('connection', function(socket){
//now the socket will have user data
var user = socket.handshake.user,
});
看看Baloons.IO,看看一些很棒的源代码,其中会话和 socket.io 使用 redis 存储和谐相处。
希望这可以帮助!
于 2012-11-16T20:44:59.547 回答