Kdy použít ASP.NET Core SignalR

Dokončeno

SignalR poskytuje webové funkce v reálném čase. Vzpomeňte si, že Contoso Pizza vyžaduje živou mapu pro sledování stavu a doručení objednávek. Ztráta prodeje během špičky nutí tým prozkoumat lepší řešení než dotazování na straně klienta.

Kritéria pro rozhodnutí

Znalost, kdy zvolit SignalR, je stejně důležitá jako znalost, kdy ji zvolit. Díky webovým funkcím v reálném čase závisí uživatelské prostředí aplikace na její odezvu. Nejlepší je pochopit, které části aplikace vyžadují aktualizace v reálném čase.

Kdy použít SignalR

SignalR je stejně trvalý jako základní připojení. To znamená, že pokud se jedná o problém s připojením klientské aplikace, není signalR nejlepší volbou.

Dalším aspektem je škálovatelnost služby SignalR. V závislosti na počtu souběžně připojených klientů může webový server zaznamenat kolize prostředků, když dosáhne limitů. V takových situacích byste pravděpodobně museli nasadit aplikaci do serverové farmy a použít backplane. Implementace tohoto je sama o sobě zdlouhavá.

Případně můžete tento problém vyřešit pomocí služby Azure SignalR. Nebo můžete pomoct zmírnit tím, že využijete různé mechanismy odolnosti a zotavení po havárii.

Příklady způsobů signalR

Službu SignalR můžete používat místně, v cloudu nebo se službou Azure SignalR.

  • Lokálně:

    Diagram ASP.NET použití základní služby SignalR v místním prostředí

  • V cloudu:

    Diagram služby ASP.NET Core SignalR, který se používá v cloudu

  • Se službou Azure SignalR:

    Diagram používání služby Azure SignalR

Platné případy použití

SignalR není náhradou za tradiční požadavky HTTP. Aplikace můžou pomocí služby SignalR zjistit, kdy provádět konkrétní požadavky HTTP. Tímto způsobem se vzájemně doplňují.

Pro SignalR existuje mnoho platných případů použití. Následující seznam představuje vhodné kandidáty pro SignalR:

  • Aplikace, které vyžadují aktualizace s vysokou frekvencí ze serveru:
    • Hry
    • Sociální sítě
    • Hlasování
    • Aukce
    • Aplikace GPS
  • Řídicí panely a monitorovací aplikace:
    • Řídicí panely společnosti
    • Živé mapy
    • Okamžité aktualizace prodeje
    • Upozornění na cestování
    • Stránky kanálu kontinuální integrace/průběžného doručování (CI/CD)
  • Interaktivní aplikace pro spolupráci a více uživatelů:
    • Aplikace Whiteboard
    • Týmové aplikace schůzek
    • Aplikace pro sdílení dokumentů
    • Visual Studio Live Share
  • Aplikace, které vyžadují okamžitá oznámení:
    • E-mailové aplikace
    • Chatovací aplikace
    • Hry založené na turné
    • Generování sestav časových řad
    • GitHub Actions, systémy problémů a žádostí o přijetí změn

Scénář Contoso Pizza

Pokud uvažujete o řešení dotazování na straně klienta v mapě živých objednávek Contoso Pizza, může být signalR možnou alternativou. Stejně jako u všech rozhodnutí o programování a architektuře je důležité zvážit výhody a nevýhody služby SignalR.