Kiedy należy używać ASP.NET Core SignalR

Ukończone

Usługa SignalR zapewnia funkcje internetowe w czasie rzeczywistym. Pamiętaj, że firma Contoso Pizza wymaga mapy na żywo do śledzenia stanu i dostarczania zamówień. Utrata sprzedaży w godzinach szczytu prowadzi zespół do zbadania lepszego rozwiązania niż sondowanie po stronie klienta.

Kryteria decyzji

Wiedza, kiedy nie wybierać signalR jest tak ważna, jak wiedza, kiedy ją wybrać. Dzięki funkcjom internetowym w czasie rzeczywistym środowisko użytkownika aplikacji zależy od czasu odpowiedzi. Najlepiej zrozumieć, które części aplikacji wymagają aktualizacji w czasie rzeczywistym.

Kiedy nie należy używać usługi SignalR

Usługa SignalR jest tak trwała, jak jego połączenie bazowe. Oznacza to, że jeśli wystąpi problem z łącznością aplikacji klienckiej, usługa SignalR nie jest najlepszym wyborem.

Innym zagadnieniem jest skalowalność usługi SignalR. W zależności od liczby równoczesnych połączonych klientów serwer internetowy może doświadczyć rywalizacji o zasoby, gdy osiągnie limity. W takich sytuacjach prawdopodobnie trzeba wdrożyć aplikację w farmie serwerów i użyć płaszczyzny wstecznej. Implementacja tego na własną rękę może być żmudna.

Alternatywnie możesz rozwiązać ten problem przy użyciu usługi Azure SignalR Service. Możesz też pomóc w złagodzeniu go, korzystając z różnych mechanizmów odporności i odzyskiwania po awarii.

Przykładowe modalności usługi SignalR

Usługi SignalR można używać lokalnie, w chmurze lub w usłudze Azure SignalR Service.

  • Lokalnie:

    Diagram ASP.NET Core SignalR używany lokalnie.

  • W chmurze:

    Diagram ASP.NET Core SignalR używany w chmurze.

  • Usługa Azure SignalR Service:

    Diagram użycia usługi Azure SignalR Service.

Prawidłowe przypadki użycia

Usługa SignalR nie zastępuje tradycyjnych żądań HTTP. Aplikacje mogą używać usługi SignalR, aby wiedzieć, kiedy wysyłać określone żądania HTTP. W ten sposób uzupełniają się nawzajem.

Istnieje wiele prawidłowych przypadków użycia usługi SignalR. Poniższa lista reprezentuje dobrych kandydatów do usługi SignalR:

  • Aplikacje wymagające aktualizacji o wysokiej częstotliwości z serwera:
    • Gry
    • Sieci społecznościowe
    • Voting (Głosowanie)
    • Aukcje
    • Aplikacje GPS
  • Pulpity nawigacyjne i aplikacje monitorowania:
    • Pulpity nawigacyjne firmy
    • Mapy na żywo
    • Natychmiastowe aktualizacje sprzedaży
    • Alerty dotyczące podróży
    • Strony potoku ciągłej integracji/ciągłego dostarczania (CI/CD)
  • Aplikacje interaktywne współpracy i wielu użytkowników:
    • Aplikacje tablicy
    • Aplikacje spotkań zespołowych
    • Aplikacje do udostępniania dokumentów
    • Funkcja udostępniania na żywo w programie Visual Studio
  • Aplikacje, które wymagają powiadomień błyskawicznych:
    • Aplikacje poczty e-mail
    • Aplikacje do czatów
    • Gry oparte na kolei
    • Raportowanie szeregów czasowych
    • GitHub Actions, systemy problemów i żądań ściągnięcia

Scenariusz firmy Contoso Pizza

Jeśli rozważasz rozwiązanie do sondowania po stronie klienta na mapie zamówień na żywo Firmy Contoso Pizza, usługa SignalR może być realną alternatywą. Podobnie jak w przypadku wszystkich decyzji programistycznych i architektonicznych, niezwykle ważne jest, aby rozważyć zalety i wady usługi SignalR.