Ошибки тайм-аута сигнала

#asp.net-core #signalr

Вопрос:

Я начал видеть эти ошибки в консоли javascript недавно, хотя использую SignalR в течение длительного времени. Так что, возможно, из-за обновления версии в клиенте microsoft/SignalR

 Utils.js:218 [2021-07-28T15:36:22.247Z] Error: Connection disconnected with error 'Error: Server timeout elapsed without receiving a message from the server.'.
 

Поэтому я добавил эти строки в клиентский код (прокомментировал недавно добавленные), это уменьшило частоту ошибок, но они не исчезли:

     connectSignalRHub() {
    const liveMarginHub = new SignalR.HubConnectionBuilder()
        .withUrl(buildSignalRUrl('liveUpdateHub'))
        .withAutomaticReconnect() // newly added
        .configureLogging(SignalR.LogLevel.Error)
        .build();

    // newly added
    liveMarginHub.keepAliveIntervalInMilliseconds = 1000 * 60 * 3; // Three minutes
    liveMarginHub.serverTimeoutInMilliseconds = 1000 * 60 * 6; // Six minutes
 

Бэкэнд-это ASP.NET ядро. Я вижу, что там также есть варианты указания тайм-аута, например

         sc.AddSignalR(c =>
        {
            c.EnableDetailedErrors = true;
            c.ClientTimeoutInterval = TimeSpan.MaxValue;
            c.KeepAliveInterval = TimeSpan.MaxValue;
        });
 

Но правильно ли это делать? Я просто пытаюсь удалить сообщение об ошибке тайм-аута из консоли пользовательского интерфейса.

Спасибо

Комментарии:

1. Вы используете Chrome? Попробуйте использовать последнюю исправленную версию пакета npm для версии 3.1 или 5.0. Кроме того, c.KeepAliveInterval = TimeSpan.MaxValue; это вызовет проблемы, в основном это означает, что никогда не отправляйте поддержку активности клиенту, чтобы клиент отключил соединение после простоя в течение времени ожидания сервера в миллисекундах.

2. @Brennan Я использовал «@microsoft/signalr»: «^5.0.8», которая, похоже, является последней версией. Теперь я попробовал 6.0.0-предварительный просмотр.6.21355.2, но сообщения об ошибках не останавливаются.