Dela via


Snabbstart: Publicera meddelanden med Azure Web PubSub Service SDK

Azure Web PubSub hjälper dig att hantera WebSocket-klienter. Den här snabbstarten visar hur du publicerar meddelanden till WebSocket-klienter med hjälp av Azure Web PubSub Service SDK.

Krav

  • Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt konto.
  • ett Bash- och PowerShell-kommandogränssnitt. Python-, JavaScript- och Java-exemplen kräver ett Bash-kommandogränssnitt.
  • En filredigerare som VSCode.
  • Azure CLI: installera Azure CLI

Om du skapar projektet på en lokal dator måste du installera beroendena för det språk du använder:

Installera både .NET Core SDK och aspnetcore dotnet-körningen.

.NET Core

1. Installation

Om du vill logga in på Azure från CLI kör du följande kommando och följer anvisningarna för att slutföra autentiseringsprocessen. Om du använder Cloud Shell behöver du inte logga in.

az login

Kontrollera att du kör den senaste versionen av CLI via uppgraderingskommandot.

az upgrade

Installera eller uppdatera sedan Azure Web PubSub-tillägget för CLI om det inte har installerats med az upgrade.

az extension add --name webpubsub --upgrade

1. Skapa en resursgrupp

Ange följande miljövariabler. <Ersätt platshållaren> med ett unikt Web PubSub-namn.

RESOURCE_GROUP="webpubsub-resource-group"
LOCATION="EastUS"
WEB_PUBSUB_NAME="<your-unique-name>"

Skapa en resursgrupp för Web PubSub-projektet.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

2. Distribuera en Web PubSub-tjänstinstans

az webpubsub create Använd kommandot för att skapa och distribuera en Web PubSub-tjänstinstans.

az webpubsub create \
  --name $WEB_PUBSUB_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --sku Free_F1

Spara tjänstens anslutningssträng. Anslutningssträngen används av tjänst-SDK för att publicera meddelanden.

Viktigt

I en produktionsmiljö bör du lagra anslutningssträngar på ett säkert sätt med hjälp av Azure Key Vault.

az webpubsub key show --name $WEB_PUBSUB_NAME --resource-group $RESOURCE_GROUP --query primaryConnectionString

3. Anslut en klient till tjänstinstansen

Skapa en Web PubSub-klient. Klienten upprätthåller en anslutning till tjänsten tills den avslutas.

az webpubsub client Använd kommandot för att starta en WebSocket-klientanslutning till tjänsten. Klienterna ansluter alltid till en hubb, så ange ett hubbnamn som klienten ska ansluta till.

az webpubsub client start \
  --name $WEB_PUBSUB_NAME \
  --resource-group $RESOURCE_GROUP \
  --hub-name "myHub1" \
  --user-id "user1"

Anslutningen till Web PubSub-tjänsten upprättas när du ser ett JSON-meddelande som anger att klienten nu har anslutits och har tilldelats en unik connectionId:

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

4. Publicera meddelanden med service SDK

Du använder Azure Web PubSub SDK för att publicera ett meddelande till alla klienter som är anslutna till hubben. Du kan välja mellan C#, JavaScript, Python och Java. Beroendena för varje språk installeras i stegen för det språket. Python, JavaScript och Java kräver ett bash-gränssnitt för att köra kommandona i den här snabbstarten.

Konfigurera projektet för att publicera meddelanden

  1. Öppna ett nytt kommandogränssnitt för det här projektet.

  2. Spara anslutningssträngen från klientgränssnittet. <your_connection_string> Ersätt platshållaren med anslutningssträngen som du visade i ett tidigare steg.

    connection_string="<your_connection_string>"
    
  3. Välj nu språk för projektet.

  1. Lägg till ett nytt projekt med namnet publisher och SDK-paketet Azure.Messaging.WebPubSub.

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Program.cs Uppdatera filen så att den WebPubSubServiceClient använder klassen för att skicka meddelanden till klienterna. Ersätt koden i Program.cs filen med följande kod.

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

    Anropet service.SendToAllAsync() skickar helt enkelt ett meddelande till alla anslutna klienter i hubben.

  3. Kör följande kommando för att publicera ett meddelande till tjänsten.

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. Det tidigare kommandogränssnittet som innehåller Web PubSub-klienten visar det mottagna meddelandet.

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

Rensa

Du kan ta bort de resurser som du skapade i den här snabbstarten genom att ta bort den resursgrupp som innehåller dem.

az group delete --name $RESOURCE_GROUP --yes