gpt4 book ai didi

Node.js 聊天 - 存储 session.id 以供以后使用?

转载 作者:太空宇宙 更新时间:2023-11-04 02:41:46 25 4
gpt4 key购买 nike

我正在构建一个聊天,我想将用户的 session.id 存储 10 天。这样,如果用户在 8 天后回来,他/她的消息将再次出现。为此,我必须以某种方式存储生成的 session.id。

我该如何实现这个目标?

我当前在用户连接时运行的代码是这样的:

//user_id 是每个域的唯一 ID,以便每个聊天都有自己的房间

socket.on('adduser', function(user_id){

var sid = socket.id;
console.log('Socket.id ====>', sid);

socket.join('Room_' + user_id);
socket.broadcast.to('Room_' + user_id).emit('updatechat', 'SERVER','Hello');
});

最佳答案

使用快速 session 存储来存储和检索 cookie/sessionID 信息。使用经过授权的 socket.io 在用户连接上提取 sessionID,如下面的示例代码所示:

var parseCookie = require('connect').utils.parseCookie;
sio.set('authorization', function (data, accept) {
if (data.headers.cookie) {
data.cookie = parseCookie(data.headers.cookie);
data.sessionID = data.cookie['express.sid'];
} else {
return accept('No cookie transmitted.', false);
}
accept(null, true);
});

Cookie 将包含 Express session 的 sessionID。

现在可以通过 socket.io 连接对象的握手属性访问分配给数据对象的所有属性。

sio.sockets.on('connection', function (socket) {
console.log('A socket with sessionID ' + socket.handshake.sessionID
+ ' connected!');
});

希望这有帮助。

关于Node.js 聊天 - 存储 session.id 以供以后使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14336851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com