在redis上存储我的在线套接字服务器用户是否有效?如果是,那又是怎么回事?



我正在使用节点构建一个web套接字应用程序,我想存储我当前连接的用户,所以我将其保存为用户Id键和套接字Id值,但当用户断开连接时,我只知道它的套接字Id,所以我将无法从Redis中删除它(因为Redis只允许按键搜索)所以我该如何解决它?我试图反转键和值,但这是不可能的,因为套接字id不是唯一的


const isUserExist = async (socketId) => {
return await redisClient.get(socketId);
};
const addUser = async (socketId, userId) => {
if (await isUserExist(socketId)) return console.log("user already exist");
await redisClient.set(socketId, userId);
console.log("user is set inside database ");
};```

我实际上已经发现套接字对象携带当前连接用户的套接字id,所以我使用它,我的问题解决了,我们还需要将id存储为键和套接字id作为值

相关内容

最新更新