我创建了一个 hubConnection,并添加了 .WithAutomaticReconnect() 所以当连接丢失时,它会自动重新连接。在测试时,我编写了 .Reconnecting 事件,当我停止服务器时,客户端 signalR 连接立即进入 Disconnected 状态,并在 Closed 事件中没有进入 Reconnecting 事件,并且不会重新连接。这仅在我停止服务器时,如果服务器没有停止,并且连接以某种方式丢失,它会尝试重新连接并进入重新连接事件。那么,为什么当我停止服务器时没有触发 Reconnecting 事件?我问这个是因为我想确保即使我在一些更新后重新启动服务器,客户端也会重新连接。仅使用 .WithAutomaticReconnect() 方法,如果服务器重新启动,客户端不会重新连接。
这是我的 signalR 连接构建代码:
_hubConnection = new HubConnectionBuilder().WithUrl(Url, options =>
{
options.AccessTokenProvider = () => Task.FromResult(token);
})
.WithAutomaticReconnect()
.Build();
我正在使用 signalR 3.0 并有一个 .net 核心控制台应用程序作为客户端。