SignalR - wywołanie OnDisconectAsync z wyjątkiem

SignalR - wywołanie OnDisconectAsync z wyjątkiem
SW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 250
0

Hub SignalR ma metodę OnDisconnectedAsync(Exception? exception). Jak wywołać ten wyjątek? Ubicie procesu klienta, przeglądarki, zamknięcie karty w przypadku klienta JS nie daje efektu, nadal wpada null. Czy może póki co trzeba się pogodzić z tym https://github.com/dotnet/aspnetcore/issues/26701?

WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5226
0

A jakiego wyjątku tam oczekujesz / potrzebujesz?

Co chcesz osiągnąć?

bakunet
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 1681
0
SkrzydlatyWąż napisał(a):

Czy może póki co trzeba się pogodzić z tym https://github.com/dotnet/aspnetcore/issues/26701?

Z ciekawości też pogooglałem, to jest ticket z ub. roku, wychodzi na to, że w Core 5 jeszcze tego nie uwzględnili. Może w 6?

P.S. Ale chyba nawet lepiej, że nieprawidłowe rozłączenie się klienta nie rzuci wyjątkiem, jakkolwiek miałby się rozłączyć z Hub'a.

SW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 250
1

Dokumentacja mowi:

If the client disconnects intentionally (by calling connection.stop(), for example), the exception parameter will be null. However, if the client is disconnected due to an error (such as a network failure), the exception parameter will contain an exception describing the failure.

https://docs.microsoft.com/en-us/aspnet/core/signalr/hubs?view=aspnetcore-5.0

Ten wyjątek byłby przydatny do weryfikacji tego, czy połączenie zakończyło się bez udziału użytkownika. W moim przypadku może pozwoliłby uniknąć dodatkowego wywoływania Huba przed rozłączeniem żeby potwierdzić, że zaszło poprawnie.

bakunet
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 1681
1

Próbowałeś może rozwiązania z komentarzy w tym zapytaniu? https://stackoverflow.com/q/64427444

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.