我们使用Blazor和SignalR在客户端和服务器之间创建WebSocket连接.在所有系统上,我们看到每隔30秒就会有一个错误记录到控制台:
THIS_CONSOLE_ERROR:7失败: Microsoft.AspNetCore.SignalR.Client.HubConnection[69] 由于出现错误,HubConnection正在重新连接.服务器超时(30000.00ms),没有 从服务器接收消息. _bound_js_global这是控制台错误
我们在客户端设置连接,如下所示:
HubConnection hubConnection = new HubConnectionBuilder()
.WithUrl(navigationManager.ToAbsoluteUri(HubConstants.TransportPackages),
options => {
options.AccessTokenProvider = () => Task.FromResult(authenticationService?.User?.Token);
options.Transports = Microsoft.AspNetCore.Http.Connections.HttpTransportType.WebSockets | Microsoft.AspNetCore.Http.Connections.HttpTransportType.ServerSentEvents | Microsoft.AspNetCore.Http.Connections.HttpTransportType.LongPolling;
})
.ConfigureLogging(logging => {
logging.AddProvider(loggerProvider);
})
.WithAutomaticReconnect()
.Build();
hubConnection.On(HubConstants.ReceiveTransportPackage, handler);
await hubConnection.StartAsync();
如果我们删除".WithAutomaticReconnect()",则错误消息会有所不同:
失败:Microsoft.AspNetCore.SignalR.Client.HubConnection[12] 由于出现错误,连接正在关闭.服务器超时(30000.00ms),没有 从服务器接收消息.
由于超时设置(在服务器上?),错误似乎已被记录.但是为什么它被记录为错误呢?这是故意的,还是我们做错了什么?
我们知道,如果删除"logging.AddProvider(LoggerProvider);",错误将不再被记录,但我们仍然希望有其他日志(log)消息.