SignalR:是否只能为特定集线器调用集线器的OnDissconnect事件?

时间:2016-05-31 07:22:58

标签: mapping signalr connection

假设我的SignalR应用程序上有2个集线器。 我正在映射connectionsIds - >本地缓存字典上的userIds。

目前的逻辑是这样的:

使用OnConnected - >在字典中添加一个新的“connectionId to userId”条目(如果它不存在)。

使用OnDisconnected - >从字典中删除“connectionId to userId”条目(如果存在)

在Hub2保持连接的情况下,Hub1是否会断开连接?

如果是这样,我当前的逻辑是有缺陷的,因为它将从字典中删除条目,即使Hub2仍然连接。修复将要求我为每个中心处理2个词典。

P.S。我已经查看了SignalR文档来处理连接映射,它似乎总是在每个集线器中使用一个字典。所以我想知道它是否真的有必要。

1 个答案:

答案 0 :(得分:1)

根据文档信号器共享多个集线器的一个连接。因此,如果您收到OnDisconnect的呼叫,则应断开所有集线器的连接。

  已更新SignalR 2.0以处理一个signlar上的多个集线器   连接没有丢失性能。

http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-server#multiplehubs