Signalr 信号器是否更改了connectionId OnReconnected方法?

Signalr 信号器是否更改了connectionId OnReconnected方法?,signalr,signalr-hub,signalr.client,Signalr,Signalr Hub,Signalr.client,我想知道Signal是否更改了OnReconnected方法上的connectionId?由于我正在将用户列表映射到他们的连接ID,因此,如果由于连接速度较慢(例如)而在服务器上引发重新连接事件,连接ID是否会更改?我不相信OnReconnect会更改连接ID。然而,这取决于问题的原因 例如,如果客户端断开了它的internet连接,然后重新连接,OnReconnect将触发,并且用户应该具有相同的connectionID 如果服务器重新启动或IIS重新启动,则情况不同,当客户端刷新时,它将显示

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

我不相信OnReconnect会更改连接ID。然而,这取决于问题的原因

例如,如果客户端断开了它的internet连接,然后重新连接,OnReconnect将触发,并且用户应该具有相同的connectionID

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

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

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

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

odd。根据我的经验,它一直在变化。我正在使用Azure信号服务。也许这会有所不同。