Szybki start: tworzenie przekazów komunikatów w czasie rzeczywistym z poziomu aplikacji konsolowej

Usługa Azure SignalR Service udostępnia interfejs API REST do obsługi scenariuszy komunikacji między serwerami, takich jak emisja. Możesz wybrać dowolny język programowania, który może wykonywać wywołania interfejsu API REST. Możesz zamieszczać komunikaty do wszystkich połączonych klientów, konkretnych klientów według ich nazwy lub do grupy klientów.

Z tego przewodnika Szybki start dowiesz się, jak wysyłać komunikaty z aplikacji wiersza polecenia do połączonych aplikacji klienckich w języku C#.

Wymagania wstępne

Czynności przedstawione w tym przewodniku Szybki start można wykonywać w systemie macOS, Windows lub Linux.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.

Logowanie się do platformy Azure

Zaloguj się w witrynie Azure Portal przy użyciu konta platformy Azure.

Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.

W tej sekcji utworzysz podstawowe wystąpienie usługi Azure SignalR do użycia dla aplikacji. Poniższe kroki umożliwiają utworzenie nowego wystąpienia za pomocą witryny Azure Portal, ale można również użyć interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz polecenie az signalr create w dokumentacji interfejsu wiersza polecenia usługi Azure SignalR Service.

  1. Zaloguj się w witrynie Azure Portal.
  2. W lewym górnym rogu strony wybierz pozycję + Utwórz zasób.
  3. Na stronie Tworzenie zasobu w polu tekstowym usługa wyszukiwania s i marketplace wprowadź signalr, a następnie wybierz pozycję SignalR Service z listy.
  4. Na stronie SignalR Service wybierz pozycję Utwórz.
  5. Na karcie Podstawy wprowadź podstawowe informacje dotyczące nowego wystąpienia usługi SignalR Service. Wprowadź następujące wartości:
Pole Sugerowana wartość opis
Subskrypcja Wybierz swoją subskrypcję Wybierz subskrypcję, której chcesz użyć, aby utworzyć nowe wystąpienie usługi SignalR Service.
Grupa zasobów: Tworzenie grupy zasobów o nazwie SignalRTestResources Wybierz lub utwórz grupę zasobów dla zasobu usługi SignalR. Warto utworzyć nową grupę zasobów na potrzeby tego samouczka zamiast używać istniejącej grupy zasobów. Aby zwolnić zasoby po ukończeniu samouczka, usuń grupę zasobów.

Usunięcie grupy zasobów powoduje również usunięcie wszystkich zasobów należących do grupy. Tej akcji nie można cofnąć. Przed usunięciem grupy zasobów upewnij się, że nie zawiera ona zasobów, które chcesz zachować.

Więcej informacji można znaleźć w temacie Using resource groups to manage your Azure resources (Używanie grup zasobów do zarządzania zasobami platformy Azure).
Nazwa zasobu testsignalr Podaj unikatową nazwę zasobu do użycia dla zasobu usługi SignalR. Jeśli testsignalr jest już wykonany w Twoim regionie, dodaj cyfrę lub znak, dopóki nazwa nie będzie unikatowa.

Nazwa musi być ciągiem od 1 do 63 znaków i zawierać tylko cyfry, litery i znak łącznika (-). Nazwa nie może zaczynać ani kończyć się znakiem łącznika, a kolejne znaki łącznika są nieprawidłowe.
Region Wybierz region Wybierz odpowiedni region dla nowego wystąpienia usługi SignalR Service.

Usługa Azure SignalR Service nie jest obecnie dostępna we wszystkich regionach. Aby uzyskać więcej informacji, zobacz Dostępność regionów usługi Azure SignalR Service
Warstwa cenowa Wybierz pozycję Zmień , a następnie wybierz pozycję Bezpłatna (tylko tworzenie i testowanie). Wybierz pozycję Wybierz , aby potwierdzić wybór warstwy cenowej. Usługa Azure SignalR Service ma trzy warstwy cenowe: Bezpłatna, Standardowa i Premium. Samouczki korzystają z warstwy Bezpłatna, chyba że określono inaczej w wymaganiach wstępnych.

Aby uzyskać więcej informacji o różnicach funkcjonalności między warstwami i cenami, zobacz Cennik usługi Azure SignalR Service
Tryb usługi Wybieranie odpowiedniego trybu usługi Użyj wartości Domyślnej podczas hostowania logiki centrum SignalR w aplikacjach internetowych i używania usługi SignalR jako serwera proxy. Używaj technologii bezserwerowych , takich jak Azure Functions, do hostowania logiki centrum SignalR.

Tryb klasyczny jest przeznaczony tylko dla zgodności z poprzednimi wersjami i nie jest zalecany do użycia.

Aby uzyskać więcej informacji, zobacz Tryb usługi w usłudze Azure SignalR Service.

Nie musisz zmieniać ustawień na kartach Sieć i tagi samouczków usługi SignalR.

  1. Wybierz przycisk Przejrzyj i utwórz w dolnej części karty Podstawy.
  2. Na karcie Przeglądanie i tworzenie przejrzyj wartości, a następnie wybierz pozycję Utwórz. Ukończenie wdrożenia zajmuje kilka chwil.
  3. Po zakończeniu wdrażania wybierz przycisk Przejdź do zasobu .
  4. Na stronie zasobu usługi SignalR wybierz pozycję Klucze z menu po lewej stronie w obszarze Ustawienia.
  5. Skopiuj ciąg Połączenie ion dla klucza podstawowego. Ta parametry połączenia jest potrzebna do skonfigurowania aplikacji w dalszej części tego samouczka.

Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.

Klonowanie przykładowej aplikacji

Podczas wdrażania usługi przejdźmy do przygotowania kodu. Sklonuj przykładową aplikację z witryny GitHub, ustaw parametry połączenia usługi SignalR Service i uruchom aplikację lokalnie.

  1. Otwórz okno terminala usługi Git. Przejdź do folderu, w którym chcesz sklonować przykładowy projekt.

  2. Uruchom następujące polecenie w celu sklonowania przykładowego repozytorium. To polecenie tworzy kopię aplikacji przykładowej na komputerze.

    git clone https://github.com/aspnet/AzureSignalR-samples.git
    

Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.

Kompilowanie i uruchamianie przykładu

W tym przykładzie zastosowano aplikację konsolową pokazującą użycie usługi Azure SignalR Service. Oferuje ona dwa tryby:

  • Tryb serwera: wykorzystuje proste polecenia, aby wywołać interfejs API REST usługi Azure SignalR Service.
  • Tryb klienta: nawiązuje połączenie z usługą Azure SignalR Service i otrzymuje komunikaty z serwera.

Dowiesz się również, jak wygenerować token dostępu do uwierzytelniania za pomocą usługi Azure SignalR Service.

Tworzenie pliku wykonywalnego

Jako przykładu użyjemy systemu macOS osx.10.13-x64. Możesz znaleźć informacje, w jaki sposób utworzyć odpowiednią aplikację na innych platformach.

cd AzureSignalR-samples/samples/Serverless/

dotnet publish -c Release -r osx.10.13-x64

Uruchamianie klienta

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>

Uruchamianie serwera

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless server -c "<ConnectionString>" -h <HubName>

Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.

Uruchamianie aplikacji przykładowej bez publikowania

Możesz również uruchomić następujące polecenie, aby uruchomić serwer lub klienta

# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>

# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>

Korzystanie z wpisów tajnych użytkowników w celu określenia parametrów połączenia

Możesz uruchomić polecenie dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>" w katalogu głównym przykładu. Wtedy opcja -c "<ConnectionString>" nie jest już potrzebna.

Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.

Sposób użycia

Po uruchomieniu serwera użyj tego polecenia, aby wysłać komunikat:

send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast

Możesz uruchomić wielu klientów o wielu nazwach.

Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.

Integracja z usługi firmy Microsoft

Usługa Azure SignalR umożliwia integrację usługi firmy Microsoft z systemem.

Definicja specyfikacji technicznej

W poniższej tabeli przedstawiono wszystkie wersje interfejsów API REST obsługiwane do tej pory. Można tam także znaleźć plik definicji dla każdej konkretnej wersji.

Wersja Interfejs API stanu Drzwi Określona wersja
1.0-preview Dostępny 5002 Swagger
1.0 Dostępny Standardowa Swagger

Lista dostępnych interfejsów API dla każdej konkretnej wersji znajduje się na poniższej liście.

Interfejs API Wersja zapoznawcza 1.0 1.0
Rozgłoś do wszystkich
Rozgłoś do grupy
Rozgłoś do niektórych grup (przestarzałe) N / A
Wyślij do użytkownika
Wyślij do niektórych użytkowników (przestarzałe) N / A
Dodawanie użytkownika do grupy N / A
Usuwanie użytkownika z grupy N / A
Sprawdzanie istnienia użytkownika N / A
Usuwanie użytkownika ze wszystkich grup N / A
Wysyłanie do połączenia N / A
Dodawanie połączenia do grupy N / A
Usuwanie połączenia z grupy N / A
Zamykanie połączenia klienta N / A
Kondycja usługi N / A

Rozgłoś do wszystkich

Wersja Metoda HTTP interfejsu API Zażądaj URL Treść żądania
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name> {"target": "<method-name>", "arguments": [...]}

Rozgłoś do grupy

Wersja Metoda HTTP interfejsu API Zażądaj URL Treść żądania
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/group/<group-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name> {"target": "<method-name>", "arguments": [...]}

Wysyłanie do użytkownika

Wersja Metoda HTTP interfejsu API Zażądaj URL Treść żądania
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/user/<user-id> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id> {"target": "<method-name>", "arguments": [...]}

Dodawanie użytkownika do grupy

Wersja Metoda HTTP interfejsu API Zażądaj URL
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

Usuwanie użytkownika z grupy

Wersja Metoda HTTP interfejsu API Zażądaj URL
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

Sprawdzanie istnienia użytkownika w grupie

Wersja interfejsu API Metoda HTTP interfejsu API Zażądaj URL
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups/<group-name>
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>
Kod stanu odpowiedzi opis
200 Użytkownik istnieje
404 Użytkownik nie istnieje

Usuwanie użytkownika ze wszystkich grup

Wersja interfejsu API Metoda HTTP interfejsu API Zażądaj URL
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups

Wysyłanie wiadomości do połączenia

Wersja interfejsu API Metoda HTTP interfejsu API Zażądaj URL Treść żądania
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> { "target":"<method-name>", "arguments":[ ... ] }

Dodawanie połączenia do grupy

Wersja interfejsu API Metoda HTTP interfejsu API Zażądaj URL
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

Usuwanie połączenia z grupy

Wersja interfejsu API Metoda HTTP interfejsu API Zażądaj URL
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

Zamykanie połączenia klienta

Wersja interfejsu API Metoda HTTP interfejsu API Zażądaj URL
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>?reason=<close-reason>

Service Health

Wersja interfejsu API Metoda HTTP interfejsu API Zażądaj URL
1.0 GET https://<instance-name>.service.signalr.net/api/v1/health
Kod stanu odpowiedzi opis
200 Dobra obsługa
5xx Błąd usługi

Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.

Czyszczenie zasobów

Jeśli nie zamierzasz w przyszłości korzystać z tej aplikacji i nie chcesz, aby zostały naliczone jakiekolwiek opłaty, wykonaj następujące czynności w celu usunięcia wszystkich zasobów w ramach tego przewodnika Szybki start:

  1. W witrynie Azure Portal wybierz grupy zasobów daleko po lewej stronie, a następnie wybierz utworzoną grupę zasobów. Możesz też użyć pola wyszukiwania, aby odnaleźć grupę zasobów po nazwie.

  2. W otworzonym oknie wybierz grupę zasobów, a następnie kliknij pozycję Usuń grupę zasobów.

  3. W nowym oknie wpisz nazwę grupy zasobów, która ma zostać usunięta, a następnie kliknij pozycję Usuń.

Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.

Następne kroki

W tym przewodniku Szybki start przedstawiono sposób używania interfejsu API REST do emisji komunikatów w czasie rzeczywistym z usługi SignalR Service do klientów. Następnie dowiedz się więcej na temat opracowywania i wdrażania usługi Azure Functions za pomocą powiązania usługi SignalR Service, który jest oparty na interfejsie API REST.