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):

SignalR automatycznie wybiera najlepszą metodę transportu, która znajduje się w ramach możliwości serwera i klienta.

Centra

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 protokole JSON i protokół binarny oparty na elemecie MessagePack. Pakiet MessagePack zazwyczaj tworzy mniejsze komunikaty w porównaniu z JSwłączonym. 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).

Dodatkowe zasoby