假设我的SignalR应用程序上有2个集线器。 我正在映射connectionsIds - >本地缓存字典上的userIds。
目前的逻辑是这样的:
使用OnConnected - >在字典中添加一个新的“connectionId to userId”条目(如果它不存在)。
使用OnDisconnected - >从字典中删除“connectionId to userId”条目(如果存在)
在Hub2保持连接的情况下,Hub1是否会断开连接?
如果是这样,我当前的逻辑是有缺陷的,因为它将从字典中删除条目,即使Hub2仍然连接。修复将要求我为每个中心处理2个词典。
P.S。我已经查看了SignalR文档来处理连接映射,它似乎总是在每个集线器中使用一个字典。所以我想知道它是否真的有必要。
答案 0 :(得分:1)
根据文档信号器共享多个集线器的一个连接。因此,如果您收到OnDisconnect的呼叫,则应断开所有集线器的连接。
已更新SignalR 2.0以处理一个signlar上的多个集线器 连接没有丢失性能。
http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-server#multiplehubs