【发布时间】:2018-09-06 11:14:08
【问题描述】:
这是我的用例:
我有一个简单的客户端/服务器应用程序,通过 socket.io 进行通信。由于我需要跟踪房间名称及其对应的套接字所有者,因此我决定创建简单的 Redis hash,其中每一对都是 .这个哈希允许我通过房间名称快速找到特定房间所有者 socketId。到目前为止,一切都很好。
上面的哈希在subscribe后端事件上更新,使用非常简单的haset调用node_redisredis.client.hset(keyRoomToSocketId, room, socketId, cb);
这样可以确保每次新套接字到达并创建自己的具有唯一名称的房间时,将其 socketId 及其对应字段 - room 设置为哈希。
现在,我想在套接字disconnect 事件上找到这对并将 socketId 设置为空字符串。显然(如果我错了,请告诉我),我无法通过 socketId 搜索哈希。我的想法是并行再做一个哈希,其中要反转的对,即.这将允许我通过 socketId 搜索第二个哈希,检索房间,从那里删除对,然后搜索第一个哈希并将 socketId 设置为“”到相应的对中。
有什么我遗漏的吗?我可以使用 Redis 以更有效的方式完成它吗?
【问题讨论】:
标签: hash redis socket.io node-redis