Я понял, легко исправить. SignalR.HubConnection
имеет свойства serverTimeoutInMilliseconds
и keepAliveIntervalInMilliseconds
.
serverTimeoutInMilliseconds
Тайм-аут сервера в миллисекундах.
Если этот тайм-аут истекает без получения каких-либо сообщений от сервера, соединение будет прервано с ошибкой. Значение времени ожидания по умолчанию составляет 30 000 миллисекунд (30 секунд).
keepAliveIntervalInMilliseconds
Интервал по умолчанию для проверки связи с сервером.
Значение по умолчанию составляет 15 000 миллисекунд (15 секунд). Позволяет серверу обнаруживать жесткие отключения (например, когда клиент отключает компьютер от сети).
Я просто установил эти значения на большее число.
this.hubConnection.serverTimeoutInMilliseconds = 300000;
this.hubConnection.keepAliveIntervalInMilliseconds = 300000;
Мы также можем снова запустить концентратор в событии onclose
в качестве временного исправления.
this.hubConnection.onclose((error) => {
this.hubConnection.start();
console.error(`Something went wrong: ${error}`);
});