Udostępnij przez


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 i środowisko uruchomieniowe aspnetcore i 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 korzystasz z Cloud Shell, nie musisz się logować.

az login

Upewnij się, że używasz najnowszej wersji interfejsu wiersza polecenia za pomocą polecenia uaktualnienia.

az upgrade

Następnie zainstaluj lub zaktualizuj rozszerzenie Azure Web PubSub dla interfejsu wiersza polecenia, jeśli nie zostało zainstalowane za pomocą 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 instancji usługi Web PubSub

Użyj polecenia, az webpubsub create 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 parametry połączenia należy bezpiecznie przechowywać 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ą do momentu jej zakończenia.

Użyj polecenia, az webpubsub client aby uruchomić połączenie klienta protokołu WebSocket z usługą. Klienci zawsze łączą się z koncentratorem, dlatego podaj nazwę koncentratora, z którym klient ma się połączyć.

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, gdy zostanie wyświetlony komunikat JSON wskazujący, że klient został pomyślnie połączony i ma przypisany unikatowy connectionId:

{"type":"system","event":"connected","userId":"user1","connectionId":"<your_unique_connection_id>"}

4. Publikowanie wiadomości przy użyciu zestawu SDK usługi

Użyjesz zestawu Azure Web PubSub SDK, aby opublikować komunikat do wszystkich klientów połączonych z centrum. Możesz wybierać między C#, JavaScript, Python i Java. Zależności dla każdego języka są instalowane w krokach dla tego języka. Języki Python, JavaScript i Java wymagają powłoki bash do uruchamiania poleceń w tym przewodniku Szybki start.

Konfigurowanie projektu do publikowania wiadomości

  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świetlonymi we wcześniejszym kroku.

    connection_string="<your_connection_string>"
    
  3. Teraz wybierz język dla swojego projektu.

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

    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);
            }
        }
    }
    

    Połączenie service.SendToAllAsync() po prostu wysyła wiadomość do wszystkich podłączonych klientów w hubie.

  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 pokazuje odebrany komunikat.

    {"type":"message","from":"server","dataType":"text","data":"Hello World"}
    

Sprzątanie

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