信号器是否会更改连接 ID 重新连接方法?



我想知道信号器是否更改了OnReconnected方法上的连接ID? 因为我正在将用户列表映射到他们的连接 ID,因此,如果由于连接速度慢而在服务器上引发的侦察事件,例如,连接 ID 是否会更改?

No.连接 ID 在重新连接事件中不会更改。

  • OnReconnected 会在断开连接超时内自动触发(如果使用 signalR 客户端(,以防出现网络问题并错过保持活动状态。
  • 如果网络中断或服务器无法处理 OnReconnected 事件的时间超过断开连接超时,则服务器上的连接将断开连接,并且需要建立新连接。这不会自动建立新连接。客户端代码必须调用连接。Start(( 创建一个新连接。
  • 如果客户端返回旧的 connectionId,它将不会通过,因为该连接将处于断开连接状态。

因此,如果要将连接 ID 与用户映射,则需要确保在每个OnConnected 事件中使用新的 connectionId 更新连接 ID,并在服务器上的每个 OnDisconnected 事件中删除连接 ID。

我不相信OnReconnect会改变连接ID。但是,这取决于问题的原因是什么。

例如,如果客户端断开了互联网连接,然后重新拾取,则 OnReconnect 将触发,用户应具有相同的连接 ID。

如果服务器重新启动或 IIS 重新启动,则情况不同,当客户端刷新时,它将显示为 OnConnect 并获得新的连接 ID。

最新更新