#asp.net-core #signalr #signalr-hub
#asp.net-ядро #signalr #signalr-концентратор
Вопрос:
В предыдущих версиях SignalR в классе Hub был метод OnReconnected(). Но теперь есть только методы OnConnectedAsync() / OnDisconnectedAsync() . Как обнаружить событие повторного подключения в концентраторе?
Комментарии:
1. Насколько я знаю, ASP.NET Core SignalR больше не поддерживает автоматическое переподключение в случае сбоя транспортного соединения или сервера. В более старых версиях в случае сбоя сервера клиент пытается восстановить соединение в соответствии с алгоритмом планирования и, в случае успеха, повторно открывает соединение с тем же идентификатором. В ядре SignalR, если соединение прерывается, клиент может запустить его снова только с помощью метода start, и это приводит к созданию другого экземпляра соединения с другим идентификатором соединения. Таким образом, он удаляет повторно подключенный метод из концентратора. Вы могли бы попробовать использовать клиентское событие onreconnected.
2. Кроме того, если вы хотите обнаружить событие повторного подключения в концентраторе, вы можете попытаться создать клиентский метод и вызвать его из концентратора, а затем, основываясь на результате, определить, является ли это повторным подключением или нет. Ссылка: Переподключение клиентов .