Szybki start: publikowanie komunikatów przy użyciu zestawu SDK usługi Azure Web PubSub
Usługa Azure Web PubSub ułatwia zarządzanie klientami protokołu WebSocket. W tym przewodniku Szybki start pokazano, jak publikować komunikaty na klientach protokołu WebSocket przy użyciu zestawu SDK usługi Azure Web PubSub.
Wymagania wstępne
- Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
- powłoki poleceń Bash i programu PowerShell. Przykłady języków Python, JavaScript i Java wymagają powłoki poleceń powłoki Bash.
- Edytor plików, taki jak VSCode.
- Interfejs wiersza polecenia platformy Azure: instalowanie interfejsu wiersza polecenia platformy Azure
Jeśli tworzysz projekt na komputerze lokalnym, musisz zainstalować zależności dla używanego języka:
Zainstaluj zarówno zestaw .NET Core SDK, jak aspnetcore
i środowisko uruchomieniowe dotnet.
1. Konfiguracja
Aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia, uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania. Jeśli używasz Cloud Shell, nie jest konieczne zalogowanie się.
az login
Upewnij się, że używasz najnowszej wersji interfejsu wiersza polecenia za pomocą polecenia uaktualniania.
az upgrade
Następnie zainstaluj lub zaktualizuj rozszerzenie Azure Web PubSub dla interfejsu wiersza polecenia, jeśli nie zostało zainstalowane za pomocą polecenia az upgrade
.
az extension add --name webpubsub --upgrade
1. Tworzenie grupy zasobów
Ustaw następujące zmienne środowiskowe. Zastąp <symbol zastępczy> unikatową nazwą Web PubSub.
RESOURCE_GROUP="webpubsub-resource-group"
LOCATION="EastUS"
WEB_PUBSUB_NAME="<your-unique-name>"
Utwórz grupę zasobów dla projektu Web PubSub.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
2. Wdrażanie wystąpienia usługi Web PubSub
az webpubsub create
Użyj polecenia , aby utworzyć i wdrożyć wystąpienie usługi Web PubSub.
az webpubsub create \
--name $WEB_PUBSUB_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--sku Free_F1
Zapisz parametry połączenia usługi. Parametry połączenia są używane przez zestaw SDK usługi do publikowania komunikatów.
Ważne
W środowisku produkcyjnym należy bezpiecznie przechowywać parametry połączenia przy użyciu usługi Azure Key Vault.
az webpubsub key show --name $WEB_PUBSUB_NAME --resource-group $RESOURCE_GROUP --query primaryConnectionString
3. Łączenie klienta z wystąpieniem usługi
Utwórz klienta Web PubSub. Klient utrzymuje połączenie z usługą, dopóki nie zostanie zakończone.
az webpubsub client
Użyj polecenia , aby uruchomić połączenie klienta protokołu WebSocket z usługą. Klienci zawsze łączą się z koncentratorem, dlatego podaj nazwę centrum, z którymi klient ma nawiązać połączenie.
az webpubsub client start \
--name $WEB_PUBSUB_NAME \
--resource-group $RESOURCE_GROUP \
--hub-name "myHub1" \
--user-id "user1"
Połączenie z usługą Web PubSub jest nawiązywane po wyświetleniu komunikatu JSON wskazującego, że klient jest teraz pomyślnie połączony i ma przypisaną unikatową wartość connectionId
:
{"type":"system","event":"connected","userId":"user1","connectionId":"<your_unique_connection_id>"}
4. Publikowanie komunikatów przy użyciu zestawu SDK usługi
Użyjesz zestawu AZURE Web PubSub SDK, aby opublikować komunikat dla wszystkich klientów połączonych z centrum. Możesz wybrać między językami C#, JavaScript, Python i Java. Zależności dla każdego języka są instalowane w krokach dla tego języka. Język Python, JavaScript i Java wymagają powłoki bash, aby uruchamiać polecenia w tym przewodniku Szybki start.
Konfigurowanie projektu w celu publikowania komunikatów
Otwórz nową powłokę poleceń dla tego projektu.
Zapisz parametry połączenia z powłoki klienta. Zastąp
<your_connection_string>
symbol zastępczy parametrami połączenia wyświetlanymi we wcześniejszym kroku.connection_string="<your_connection_string>"
Teraz wybierz język projektu.
Dodaj nowy projekt o nazwie
publisher
i pakietAzure.Messaging.WebPubSub
zestawu SDK .mkdir publisher cd publisher dotnet new console dotnet add package Azure.Messaging.WebPubSub
Zaktualizuj plik,
Program.cs
aby używałWebPubSubServiceClient
klasy do wysyłania komunikatów do klientów. Zastąp kod wProgram.cs
pliku następującym kodem.using System; using System.Threading.Tasks; using Azure.Messaging.WebPubSub; namespace publisher { class Program { static async Task Main(string[] args) { if (args.Length != 3) { Console.WriteLine("Usage: publisher <connectionString> <hub> <message>"); return; } var connectionString = args[0]; var hub = args[1]; var message = args[2]; var service = new WebPubSubServiceClient(connectionString, hub); // Send messages to all the connected clients // You can also try SendToConnectionAsync to send messages to the specific connection await service.SendToAllAsync(message); } } }
Wywołanie
service.SendToAllAsync()
po prostu wysyła komunikat do wszystkich połączonych klientów w centrum.Uruchom następujące polecenie, aby opublikować komunikat w usłudze.
dotnet run $connection_string "myHub1" "Hello World"
Poprzednia powłoka poleceń zawierająca klienta Web PubSub wyświetla odebrany komunikat.
{"type":"message","from":"server","dataType":"text","data":"Hello World"}
Czyszczenie
Zasoby utworzone w tym przewodniku Szybki start można usunąć, usuwając grupę zasobów, która je zawiera.
az group delete --name $RESOURCE_GROUP --yes