什么时候重新连接signalR occour?

我已经开始与SignalR合作,试图找出Hub Reconnect何时发生。 我没有在网上find任何令人满意的解释。 有人可以解释何时/为什么重新连接?

集线器重新连接发生在客户端脱机后不久重新获得连接。 SignalRconfiguration值在很大程度上决定了以下示例的时间戳记,所以不要逐字逐句。

以下是涉及重新连接行为的几个示例及其结果(时间格式m:ss):

当我提到以下我指的是服务器端Hub方法

  • OnConnected
  • OnDisconnected
  • OnReconnected

1)
0:00 – 客户端连接到服务器,OnConnected被触发
0:10 – 由于ISP问题,客户端失去连接(并意识到它失去连接)
0:15 – 客户端恢复连接
0:16 – OnReconnected事件被触发

2)
0:00 – 客户端连接到服务器,OnConnected被触发
0:10 – 由于拔出以太网电缆而导致客户端失去连接(未意识到已断开连接)
0:15 – 客户端恢复连接
这里可能发生两件事情
答:0:16 – 没有任何反应,客户端继续以前的连接
B:0:〜45 – 客户端实现断开连接*
B:0:46 – 客户端转换到重新连接状态
B:0:47 – 客户端成功重新连接,并触发OnReconnected事件。

3)
0:00 – 客户端连接到服务器,OnConnected被触发
0:10 – 由于拔出以太网电缆而导致客户端失去连接(未意识到已断开连接)
0:〜45 – 客户端实现断开连接*
0:46 – 客户端转换到重新连接状态
1:15 – 服务器确定客户端已经走了太久,然后忘了它,排队一个“断开”命令为客户端接收,如果稍后重新连接。 ***
1:15 – OnDisconnected被触发
1:16 – 客户重新获得连接
1:17 – 客户端进行“软”重新连接(不会触发OnReconnected)
1:18 – 客户端检索“disconnect”命令
1:19 – 客户端呼叫“停止”,并进行软断开连接(不会触发OnDisconnected)

4)
0:00 – 客户端连接到服务器,OnConnected被触发
0:10 – 由于拔出以太网电缆而导致客户端失去连接(未意识到已断开连接)
0:〜45 – 客户端实现断开连接*
0:46 – 客户端转换到重新连接状态
1:15 – 服务器确定客户端已经走了太久,然后忘了它,排队一个“断开”命令为客户端接收,如果稍后重新连接。 ***
1:15 – OnDisconnected被触发
1:30 – 客户端停止尝试重新连接(尝试太久)**
1:30 – 客户端切换到断开状态

*由于客户端保持活着检查: 用于确定何时客户由于缺乏保持活力而离线。 没有用于长期投票运输

**由于客户端断开连接超时: 用于确定客户端何时重新连接太长时间,并且在此期间服务器已经忘记了客户端

***由于服务器断开超时: 用于确定何时应该忘记一个客户端。 这是一个时间跨度,一旦连接被标记为死在服务器上开始累积。 最终,服务器将客户端主题的disconnect命令排队,告诉客户端(如果重新连接)需要启动新的连接。 清理主题后,该命令将从服务器上消失。

希望这可以帮助!