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.
- Zestaw SDK dla platformy .NET Core
- Wybrany edytor tekstu lub edytor kodu.
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.
- Zaloguj się w witrynie Azure Portal.
- W lewym górnym rogu strony wybierz pozycję + Utwórz zasób.
- Na stronie Tworzenie zasobu w polu tekstowym usługa wyszukiwania s i marketplace wprowadź signalr, a następnie wybierz pozycję SignalR Service z listy.
- Na stronie SignalR Service wybierz pozycję Utwórz.
- 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.
- Wybierz przycisk Przejrzyj i utwórz w dolnej części karty Podstawy.
- Na karcie Przeglądanie i tworzenie przejrzyj wartości, a następnie wybierz pozycję Utwórz. Ukończenie wdrożenia zajmuje kilka chwil.
- Po zakończeniu wdrażania wybierz przycisk Przejdź do zasobu .
- Na stronie zasobu usługi SignalR wybierz pozycję Klucze z menu po lewej stronie w obszarze Ustawienia.
- Skopiuj parametry połączenia 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
Gdy usługa jest wdrażana, przygotujmy kod. Najpierw sklonuj przykładową aplikację z usługi GitHub. Następnie ustaw parametry połączenia usługi SignalR Service na aplikację. Na koniec uruchom aplikację lokalnie.
Otwórz okno terminala usługi Git. Przejdź do folderu, w którym chcesz sklonować przykładowy projekt.
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ć.
Użycie
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 | Adres URL żądania | 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 | Adres URL żądania | 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 | Adres URL żądania | 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 | Adres URL żądania |
---|---|---|
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 | Adres URL żądania |
---|---|---|
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 | Adres URL żądania |
---|---|---|
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 | Adres URL żądania |
---|---|---|
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 | Adres URL żądania | 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 | Adres URL żądania |
---|---|---|
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 | Adres URL żądania |
---|---|---|
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 | Adres URL żądania |
---|---|---|
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 | Adres URL żądania |
---|---|---|
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:
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.
W otworzonym oknie wybierz grupę zasobów, a następnie kliknij pozycję Usuń grupę zasobów.
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.