【发布时间】:2023-03-29 12:02:02
【问题描述】:
假设我的 SignalR 应用上有 2 个集线器。 我在本地缓存字典上映射connectionsIds -> userIds。
目前的逻辑是这样的:
使用 OnConnected --> 向字典中添加一个新的“connectionId to userId”条目(如果它不存在)。
使用 OnDisconnected --> 从字典中删除“connectionId to userId”条目(如果存在)
是否存在 Hub1 断开而 Hub2 保持连接的情况?
如果是这样,我当前的逻辑是有缺陷的,因为即使 Hub2 仍然连接,它也会从字典中删除条目。解决这个问题需要我为每个集线器处理 2 个字典。
附:我查看了用于处理连接映射的 SignalR 文档,并且似乎他们总是在每个集线器使用一个字典。所以我想知道它是否真的有必要。
【问题讨论】:
-
嗨 Ofir。只是一个建议,您可以考虑使用单用户组来保留此映射。它更容易实现,您不必为维护字典而感到压力。检查this
-
非常优雅的解决方案!我想我会走这条路。谢谢
标签: mapping signalr connection