Как увеличить время ожидания в ASP.NET Core SignalR v2.1? - PullRequest
0 голосов
/ 14 мая 2018

Я пробую последнюю версию SignalR на ASP.NET Core 2.1.У меня работает базовое приложение, но оно довольно скоро истекает.Я вижу эту ошибку -

Ошибка: соединение отключено с ошибкой «Ошибка: истекло время ожидания сервера без получения сообщения от сервера.».

Где можно установить этот параметр времени ожиданиябыть изменен?Я попробовал документы здесь , но никакой информации о времени ожидания там нет.Я работаю в среде разработки Windows 10 и использую клиент JavaScript.

Редактировать: Вставка изображения после включения ведения журнала клиента.

enter image description here

Редактировать 2: ссылка на страницу , содержащую тайм-ауты о более старой версии SignalR.

1 Ответ

0 голосов
/ 10 октября 2018

Для людей, которые могут прийти сюда в будущем:

Вот как увеличить время ожидания клиента Javascript

hubConnection.serverTimeoutInMilliseconds = 100000; // 100 second

Но также взгляните на эту ссылку изатем прочитайте мои комментарии ниже:

Если signalR был отключен, вы должны попытаться восстановить соединение снова.Соединение может прерваться по нескольким другим причинам, включая переключение сетей пользователя.Например, если пользователь использует сотовый телефон и подключен к Wi-Fi дома / офиса, но выходит, который затем подключается к сотовой сети передачи данных.

Для повторного подключения вы можете использовать следующее (работает для меня как чудо):

// re-establish the connection if connection dropped
connection.onclose(() => setTimeout(startSignalRConnection(connection), 5000));

, где startSignalRConnection:

const startSignalRConnection = connection => connection.start()
  .then(() => console.info('Websocket Connection Established'))
  .catch(err => console.error('SignalR Connection Error: ', err));

и соединение

const connection = new HubConnectionBuilder()
  .withUrl(connectionHub, options)
  .withHubProtocol(protocol)
  .build();
...