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 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.

.NET Core

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

  1. Otwórz nową powłokę poleceń dla tego projektu.

  2. 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>"
    
  3. Teraz wybierz język projektu.

  1. Dodaj nowy projekt o nazwie publisher i pakiet Azure.Messaging.WebPubSubzestawu SDK .

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Zaktualizuj plik, Program.cs aby używał WebPubSubServiceClient klasy do wysyłania komunikatów do klientów. Zastąp kod w Program.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.

  3. Uruchom następujące polecenie, aby opublikować komunikat w usłudze.

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. 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