Share via


Schnellstart: Veröffentlichen von Nachrichten mit dem SDK für den Azure Web PubSub-Dienst

Azure Web PubSub hilft beim Verwalten von WebSocket-Clients. In dieser Schnellstartanleitung wird gezeigt, wie Sie Nachrichten für WebSocket-Clients mit dem SDK für den Azure Web PubSub-Dienst veröffentlichen.

Voraussetzungen

  • Ein Azure-Abonnement. Wenn Sie keins besitzen, erstellen Sie ein kostenloses Konto.
  • Eine Bash- und eine PowerShell-Befehlsshell. Für die Beispiele für Python, JavaScript und Java ist eine Bash-Befehlsshell erforderlich.
  • Ein Datei-Editor wie z. B. VS Code.
  • Azure CLI: Installieren Sie die Azure CLI.

Wenn Sie das Projekt auf einem lokalen Computer erstellen, müssen Sie die Abhängigkeiten für die von Ihnen verwendete Sprache installieren:

Installieren Sie sowohl das .NET Core SDK als auch die aspnetcore- und die .NET-Runtime.

.NET Core

1. Einrichten

Um sich ausgehend von der CLI bei Azure anzumelden, führen Sie den folgenden Befehl aus und befolgen Sie die Anweisungen, um den Authentifizierungsprozess abzuschließen. Wenn Sie Cloud Shell verwenden, müssen Sie sich nicht anmelden.

az login

Stellen Sie sicher, dass Sie die neueste Version der CLI über den Upgradebefehl ausführen.

az upgrade

Als Nächstes installieren oder aktualisieren Sie die Azure Web PubSub-Erweiterung für die CLI, wenn sie nicht mit az upgrade installiert wurde.

az extension add --name webpubsub --upgrade

1. Erstellen einer Ressourcengruppe

Legen Sie die folgenden Umgebungsvariablen fest. Ersetzen Sie den <Platzhalter> durch einen eindeutigen Web PubSub-Namen.

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

Erstellen Sie eine Ressourcengruppe für das Web PubSub-Projekt.

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

2. Bereitstellen einer Web PubSub-Dienstinstanz

Verwenden Sie den Befehl az webpubsub create, um eine Web PubSub-Dienstinstanz zu erstellen und bereitzustellen.

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

Speichern Sie die Verbindungszeichenfolge des Diensts. Die Verbindungszeichenfolge wird vom Dienst-SDK zum Veröffentlichen von Nachrichten verwendet.

Wichtig

In einer Produktionsumgebung sollten Sie Verbindungszeichenfolgen mithilfe von Azure Key Vault sicher speichern.

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

3. Verbinden eines Clients mit der Dienstinstanz

Erstellen Sie einen Web PubSub-Client. Der Client hält die Verbindung mit dem Dienst aufrecht, bis er beendet wird.

Verwenden Sie den Befehl az webpubsub client, um eine WebSocket-Clientverbindung mit dem Dienst zu starten. Die Clients stellen immer eine Verbindung mit einem Hub her. Geben Sie daher einen Hubnamen für den Client an, mit dem eine Verbindung hergestellt werden soll.

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

Die Verbindung mit dem Web PubSub-Dienst ist hergestellt, wenn eine JSON-Nachricht angezeigt wird, die besagt, dass die Clientverbindung erfolgreich hergestellt und dem Client eine eindeutige connectionId zugewiesen wurde:

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

4. Veröffentlichen von Nachrichten mithilfe des Dienst-SDK

Sie verwenden das Azure Web PubSub SDK, um eine Nachricht für alle Clients zu veröffentlichen, die mit dem Hub verbunden sind. Sie können zwischen C#, JavaScript, Python und Java auswählen. Die Abhängigkeiten für jede einzelne Sprache werden in den Schritten für die entsprechende Sprache installiert. Python, JavaScript und Java erfordern eine Bash-Shell zum Ausführen der Befehle in dieser Schnellstartanleitung.

Einrichten des Projekts zum Veröffentlichen von Nachrichten

  1. Öffnen Sie eine neue Befehlsshell für dieses Projekt.

  2. Speichern Sie die Verbindungszeichenfolge aus der Clientshell. Ersetzen Sie den Platzhalter „<your_connection_string>“ durch die Verbindungszeichenfolge, die Sie in einem früheren Schritt angezeigt haben.

    connection_string="<your_connection_string>"
    
  3. Wählen Sie jetzt die Sprache für Ihr Projekt aus.

  1. Fügen Sie ein neues Projekt namens publisher und das SDK-Paket Azure.Messaging.WebPubSub hinzu.

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Aktualisieren Sie die Datei Program.cs, sodass die Klasse WebPubSubServiceClient verwendet wird, um Nachrichten an die Clients zu senden. Ersetzen Sie den Code in der Datei Program.cs durch den folgenden Code.

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

    Der Aufruf service.SendToAllAsync() sendet einfach eine Nachricht an alle verbundenen Clients im Hub.

  3. Führen Sie den folgenden Befehl aus, um eine Nachricht für den Dienst zu veröffentlichen.

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. Die vorherige Befehlsshell, die den Web PubSub-Client enthält, zeigt die empfangene Nachricht an.

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

Bereinigen

Sie können die Ressourcen löschen, die Sie in dieser Schnellstartanleitung erstellt haben, indem Sie die Ressourcengruppe löschen, die sie enthält.

az group delete --name $RESOURCE_GROUP --yes