Freigeben über


Schnellstart: Veröffentlichen von Nachrichten mit dem Azure Web PubSub Service SDK

Azure Web PubSub unterstützt Sie bei der Verwaltung von WebSocket-Clients. In dieser Schnellstartanleitung erfahren Sie, wie Sie Nachrichten mithilfe des Azure Web PubSub Service SDK in WebSocket-Clients veröffentlichen.

Voraussetzungen

  • Wenn Sie noch nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Konto.
  • eine Bash- und PowerShell-Befehlsshell. Für die Python-, JavaScript- und Java-Beispiele ist eine Bash-Befehlsshell erforderlich.
  • Ein Datei-Editor, z. B. VS Code.
  • Azure CLI: Installieren der 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 dotnet-Runtime.

.NET Kern

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, ist es nicht erforderlich, sich anzumelden.

az login

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

az upgrade

Installieren oder aktualisieren Sie als Nächstes die Azure Web PubSub-Erweiterung für die CLI, wenn sie nicht mit az upgradeinstalliert 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 az webpubsub create Befehl, 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.

Von Bedeutung

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 behält eine Verbindung mit dem Dienst bei, bis er beendet wird.

Verwenden Sie den az webpubsub client Befehl, um eine WebSocket-Clientverbindung mit dem Dienst zu starten. Die Clients stellen immer eine Verbindung mit einem Hub her, geben Sie also einen Hubnamen an, mit dem der Client eine Verbindung herstellen 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 wird hergestellt, wenn eine JSON-Meldung angezeigt wird, die angibt, dass der Client jetzt erfolgreich verbunden ist und eine eindeutige connectionIdOption zugewiesen wird:

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

4. Veröffentlichen von Nachrichten mit dem Dienst-SDK

Sie verwenden das Azure Web PubSub SDK, um eine Nachricht an alle Clients zu veröffentlichen, die mit dem Hub verbunden sind. Sie können zwischen C#, JavaScript, Python und Java wählen. Die Abhängigkeiten für jede Sprache werden in den Schritten für diese Sprache installiert. Für Python, JavaScript und Java ist eine Bash-Shell erforderlich, um die Befehle in dieser Schnellstartanleitung auszuführen.

Einrichten des Projekts zum Veröffentlichen von Nachrichten

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

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

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

  1. Fügen Sie ein neues Projekt mit dem Namen publisher und das SDK-Paket Azure.Messaging.WebPubSubhinzu.

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Aktualisieren Sie die Program.cs Datei so, dass die WebPubSubServiceClient Klasse zum Senden von Nachrichten an die Clients verwendet wird. Ersetzen Sie den Code in der Program.cs Datei 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 im Dienst zu veröffentlichen.

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. In der vorherigen Befehlsshell, die den Web PubSub-Client enthält, wird die empfangene Nachricht angezeigt.

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

Säuberungsaktion

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