Přehled ASP.NET Core SignalR
Co je SignalR?
ASP.NET Core SignalR je opensourcová knihovna, která zjednodušuje přidávání webových funkcí v reálném čase do aplikací. Webové funkce v reálném čase umožňují okamžitě odesílat obsah klientům na straně serveru.
Vhodné kandidáty pro SignalR:
- Aplikace, které vyžadují aktualizace ze serveru s vysokou frekvencí. Příkladem jsou hry, sociální sítě, hlasování, aukce, mapy a aplikace využívající GPS.
- Řídicí panely a aplikace pro monitorování. Mezi příklady patří řídicí panely společností, okamžité a aktuální informace o prodeji nebo upozornění pro cestující.
- Aplikace podporující spolupráci. Příklady aplikací podporujících spolupráci jsou aplikace tabulí a software pro týmové schůzky.
- Aplikace, které vyžadují oznámení. Oznámení využívají sociální sítě, e-mailové aplikace, chaty, hry, upozornění pro cestující a řada dalších aplikací.
SignalRposkytuje rozhraní API pro vytváření vzdálených volání procedur mezi servery (RPC). Rpcs volají funkce na klientech z kódu .NET Core na straně serveru. Existuje několik podporovaných platforem, z nichž každá má příslušnou klientskou sadu SDK. Z tohoto důvodu se programovací jazyk vyvolaný voláním RPC liší.
Tady jsou některé funkce SignalR ASP.NET Core:
- Zpracovává správu připojení automaticky.
- Odesílá zprávy všem připojeným klientům současně. Například chatovací místnost.
- Odesílá zprávy konkrétním klientům nebo skupinám klientů.
- Škáluje se tak, aby zvládla rostoucí provoz.
- SignalR Protokol centra
Zdroj je hostovaný v SignalR úložišti na GitHubu.
Přenosy
SignalR podporuje následující techniky pro zpracování komunikace v reálném čase (v pořadí řádné náhradní komunikace):
- Webové sokety
- Události odesílané serverem
- Dlouhé dotazování
SignalR automaticky zvolí nejlepší způsob přenosu, který je v rámci možností serveru a klienta.
Rozbočovače
SignalR používá rozbočovače ke komunikaci mezi klienty a servery.
Centrum je kanál vysoké úrovně, který klientovi a serveru umožňuje navzájem volat metody. SignalR zpracovává odesílání přes hranice počítače automaticky, což klientům umožňuje volat metody na serveru a naopak. Parametry silného typu můžete předat metodám, které umožňují vazbu modelu. SignalR poskytuje dva integrované protokoly centra: textový protokol založený na formátu JSON a binární protokol založený na messagepacku. MessagePack obvykle vytváří menší zprávy ve srovnání s JSON. Starší prohlížeče musí podporovat XHR úroveň 2 pro zajištění podpory protokolu MessagePack.
Centra volají kód na straně klienta odesláním zpráv, které obsahují název a parametry metody na straně klienta. Objekty odeslané jako parametry metody jsou deserializovány pomocí nakonfigurovaného protokolu. Klient se pokusí shodovat s názvem metody v kódu na straně klienta. Když klient najde shodu, zavolá metodu a předá do ní deserializovaná data parametru.
Prohlížeče, které nepodporují ECMAScript 6 (ES6)
SignalR cílí na ES6. U prohlížečů, které nepodporují ES6, překompilujte knihovnu na ES5. Další informace naleznete v tématu Začínáme s ES6 – Transpilování ES6 do ES5 pomocí Traceur a Babel.