Signalr是否更改connectionId OnReconnected方法?

时间:2017-08-01 00:18:10

标签: signalr signalr-hub signalr.client

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

2 个答案:

答案 0 :(得分:1)

我不相信OnReconnect会更改connectionID。但是,这取决于问题的原因。

如果客户端放弃了它的互联网连接,然后选择了备份,则OnReconnect将触发,用户应具有相同的connectionID。

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

答案 1 :(得分:1)

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

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

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