#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, но сообщения об ошибках не останавливаются.