我将用户名/SocketID 对存储在我的 socket.io 聊天应用程序的 redis 存储中。
当用户断开连接时,我需要从 redis 存储中删除用户名/socketID 对。我已经看到了如何从键中获取值,但从来没有从值中获取键。是否可以?或者无论哪种方式,我如何才能从值中删除键/值对。这是我的代码
用于在连接时添加到存储
socket.on('username', function (username) {
client.set(username, socket.id, function (err) {
console.log(username + ":" + socket.id);
});
});
对于断开连接,客户端不知道何时会发生断开连接,这可能是由于失去互联网连接而发生的,但是当套接字断开连接时,它总是会触发“断开连接”事件。在这种情况下,我需要删除用户名/socketID 对。
socket.on('disconnect', function () {
// dont know the username??
client.del(username, socket.id, function (err) {
if (err)
console.log(err);
else {
socket.disconnect();
console.log(socket.id + " DISCONNECTED");
}
});
});