Omówienie platformy ASP.NET Core SignalR
Co to jest usługa SignalR?
ASP.NET Core SignalR to biblioteka typu open source, która upraszcza dodawanie funkcji internetowych w czasie rzeczywistym do aplikacji. Funkcja internetowa w czasie rzeczywistym umożliwia natychmiastowe wypychanie zawartości do klientów po stronie serwera.
Dobrzy kandydaci do :SignalR
- Aplikacje, które wymagają częstych aktualizacji z serwera. Są to na przykład gry i aplikacje do obsługi sieci społecznościowych, głosowania, aukcji, map i nawigacji GPS.
- Pulpity nawigacyjne i aplikacje do monitorowania. Przykładami mogą być firmowe pulpity nawigacyjne, błyskawiczne powiadomienia o sprzedaży lub alerty dotyczące podróży.
- Aplikacje do współpracy. Przykładami aplikacji do współpracy są aplikacje tablicy i oprogramowanie do spotkań zespołowych.
- Aplikacje, które wymagają powiadomień. Wiele aplikacji korzysta z powiadomień, w tym gry i aplikacje do obsługi sieci społecznościowych, poczty e-mail, czatów i alertów dotyczących podróży.
SignalRUdostępnia interfejs API do tworzenia zdalnych wywołań procedur serwer-klient (RPC). Kontrolery RPC wywołują funkcje na klientach z kodu platformy .NET Core po stronie serwera. Istnieje kilka obsługiwanych platform, z których każdy ma odpowiedni zestaw SDK klienta. W związku z tym język programowania wywoływany przez wywołanie RPC różni się.
Poniżej przedstawiono niektóre funkcje SignalR ASP.NET Core:
- Automatycznie obsługuje zarządzanie połączeniami.
- Wysyła komunikaty do wszystkich połączonych klientów jednocześnie. Na przykład pokój rozmów.
- Wysyła komunikaty do określonych klientów lub grup klientów.
- Skaluje do obsługi rosnącego ruchu.
- SignalR Protokół koncentratora
Źródło jest hostowane SignalR w repozytorium w usłudze GitHub.
Transporty
SignalR obsługuje następujące techniki obsługi komunikacji w czasie rzeczywistym (w kolejności łagodnego powrotu):
- Obiekty WebSocket
- Zdarzenia wysyłane przez serwer
- Długie sondowanie
SignalR automatycznie wybiera najlepszą metodę transportu, która znajduje się w ramach możliwości serwera i klienta.
Koncentratory
SignalR używa koncentratorów do komunikowania się między klientami i serwerami.
Koncentrator to potok wysokiego poziomu, który umożliwia klientowi i serwerowi wywoływanie metod nawzajem. SignalR automatycznie obsługuje wysyłanie przez granice maszyny, umożliwiając klientom wywoływanie metod na serwerze i na odwrót. Możesz przekazać silnie typizowane parametry do metod, co umożliwia powiązanie modelu. SignalR Udostępnia dwa wbudowane protokoły koncentratora: protokół tekstowy oparty na formacie JSON i protokół binarny oparty na elemecie MessagePack. Pakiet MessagePack zazwyczaj tworzy mniejsze komunikaty w porównaniu z formatem JSON. Starsze przeglądarki muszą obsługiwać poziom XHR 2 , aby zapewnić obsługę protokołu MessagePack.
Centra wywołają kod po stronie klienta, wysyłając komunikaty zawierające nazwę i parametry metody po stronie klienta. Obiekty wysyłane jako parametry metody są deserializowane przy użyciu skonfigurowanego protokołu. Klient próbuje dopasować nazwę do metody w kodzie po stronie klienta. Gdy klient znajdzie dopasowanie, wywołuje metodę i przekazuje do niej dane z deserializacji parametrów.
Przeglądarki, które nie obsługują kodu ECMAScript 6 (ES6)
SignalR cel ES6. W przypadku przeglądarek, które nie obsługują wersji ES6, należy transpilować bibliotekę do wersji ES5. Aby uzyskać więcej informacji, zobacz Getting Started with ES6 – Transpiling ES6 to ES5 with Traceur and Babel (Wprowadzenie do wersji ES6 — transpilowanie ES6 do ES5 za pomocą platformy Traceur i Babel).