SignalR: обнаружение состояния соединения на клиенте
Вопрос
Я видел, как вы можете перехватить событие отключения на стороне клиента с помощью SignalR, привязав его к событию .disconnect.
Теперь, когда я это сделал, я хочу перевести клиента в «цикл ожидания повторного подключения», где он постоянно пытается подключиться, пока не завершится успешно или пользователь не отключится.Предоставляет ли концентратор свойство состояния подключения?Я думаю что-то вроде (псевдокод)
родовое словоРешение
Клиент JS пытается повторно подключиться в течение определенного периода времени, который по умолчанию составляет 110 секунд.Вы можете подписаться на событие connection.stateChanged и получать обновления при изменении состояния, чтобы вы могли отображать его для пользователя или проверять реакцию SignalR на различные сценарии отключения.
В моем тестировании состояние было правильно обновлено до отключения, повторного подключения и т. д., как и следовало ожидать.
родовое словоДругие советы
Клиент всегда пытается подключиться.Вам не нужно об этом беспокоиться. Существует событие повторного подключения, которое вы можете прослушать, если вы хотите что-то сделать после успешного восстановления соединения.
РЕДАКТИРОВАТЬ: это изменилось, клиент пытается повторно подключиться только в течение определенного периода времени.После этого вы должны поймать событие отключения и вручную перезапустить.