Signalr 是否更改 connectionId OnReconnected 方法?

Abd*_*.ay 4 signalr signalr-hub signalr.client

我想知道信号器是否更改了 OnReconnected 方法上的 connectionId?因为我正在将用户列表映射到他们的连接 ID,所以如果由于连接缓慢而在服务器上引发了重新连接的事件,例如 connectionId 会改变吗?

KRo*_*Roy 6

否。 connectionId 在 OnReconnected 事件中不会更改。

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

因此,如果您将 connectionID 与用户映射,那么您需要确保在每个 OnConnected 事件中使用新的 connectionId 更新连接 Id 服务器上的每个 OnDisconnected 事件中将其删除