Мне нужно повторно подключить клиентское приложение (SignalR) к серверному приложению (SignalR), пока оно не будет подключено.
Но это ConnectionState.Reconnecting
всегда ... Так что я понятия не имею, как переподключиться.
Я нашел этот подход Лучшая практика для повторного подключения SignalR 2.0 .NET клиент-серверный концентратор, говоря, что мы должны воссоздать HubConnection
как уникальный рабочий подход ...
Есть подсказка?
У меня есть код
System.Timers.Timer connectionChecker = new System.Timers.Timer(20000);
HubConnection Connection { get; set; }
private void ConnectionChecker_ElapsedAsync(object sender, System.Timers.ElapsedEventArgs e)
{
if (Connection.State == ConnectionState.Disconnected)
{
connectionChecker.Stop();
ForceConnectAsync().Start(); // In this method await Connection.Start();
}
else if (Connection.State == ConnectionState.Connecting)
{
// After conection lost it keeps this state ALWAYS.
// But once server is up it still has this state.
}
else if (Connection.State == ConnectionState.Reconnecting)
{
}
else if (Connection.State == ConnectionState.Connected)
{
}
}