• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Automatyczny reconnect po utracie połączenia z WS w aplikacji C#

Object Storage Arubacloud
+1 głos
53 wizyt
pytanie zadane 11 kwietnia w C# przez Sefinek Obywatel (1,180 p.)
Witam, mam juz gotowe połaczenie z WS (apka .NET 8), lecz gdy serwer WS jest np. ponownie uruchamiany, klient traci połączenie z WS. Kompletnie nie wiem jak to zrobić, aby klient probował ponownie łączyć się z serwerem po zerwaniu połączenia. Probowalem to zrobić metodami ping/pong. Próba była również przy użyciu ifa z WebSocketMessageType.Close, natomiast if nigdy nie był wykonywany z jakiegoś powodu (result.MessageType == WebSocketMessageType.Close).

Ktos mógłby mi coś doradzić? Całego kodu źródłego od razu mowie ze nie wysle, poniweaz aplikacja zawiera kilka ważnych funkcji związanych z kryptografia, dalej chyba nie musze tłumaczyć, prawda?

1 odpowiedź

0 głosów
odpowiedź 12 kwietnia przez Wiciorny Ekspert (270,370 p.)

A nie ma mechanizmu jakiegoś RETRY BACKOFF ? 
Często to wykorzystywane jest, aby automatycznie nawiązywać nowe połączenia, to samo tyczy sie np requestów. 
https://learn.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/implement-retries-exponential-backoff

Co prawda backoff częściej jest przy niepozwodzonym zapytaniu, natomiast jest też odpowiedni pattern na połączenia CircuitBreaker https://martinfowler.com/bliki/CircuitBreaker.html
https://learn.microsoft.com/en-us/aspnet/core/grpc/retries?view=aspnetcore-8.0

Pewnego rodzaju listener mógłby nasłuchiwać aktualne połączenie, bo rozumiem, że ono jest gubione w czasie. 

Na koniec co często może być rozwiązanie, mogłaby to być konfiguracja LOAD Balancera - tylko, że dalej problemem jest 1 aplikacja, a nie np. możliwość  działania load balancera na 2 instancje albo więcej, to też mogą być o brazy dokerowe. W tym momencie kiedy połączenie zostanie utracone, lub go nie można nawiązać balancer będzie uruchamiał zawsze nową instancje, tak aby użtykownik nie "doświadczył" blędu z utratą połączenia. 

Podobne pytania

0 głosów
0 odpowiedzi 121 wizyt
pytanie zadane 27 stycznia 2022 w C# przez miras_g Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,172 wizyt
0 głosów
1 odpowiedź 238 wizyt
pytanie zadane 12 listopada 2022 w C# przez Beginner555 Obywatel (1,760 p.)

92,590 zapytań

141,439 odpowiedzi

319,697 komentarzy

61,974 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...