我在我的socket.io聊天应用程序的Redis存储中存储了用户名/ SocketID对。
当用户断开连接时,我需要从Redis存储中删除用户名/ socketID对。我已经看到了如何从键中获取值,但从未从值中获取键。可能吗?或无论哪种方式,我怎么能只从值中删除键/值对。这是我的代码
用于在连接上添加存储
socket.on('username', function (username) { client.set(username, socket.id, function (err) { console.log(username + ":" + socket.id); }); });
对于断开连接,客户端将不知道何时断开连接,可能是由于Internet连接断开而发生的,但是当套接字断开连接时,它总是会遇到“断开连接”事件。在这种情况下,我需要删除用户名/ 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"); } }); });
最简单的方法是存储 两 对。一个与username/id另一个id/username。因此,无论您拥有什么信息,都可以获取其他信息,因此也可以获取其他键/值对。
username/id
id/username