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.
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
Öffnen Sie eine neue Befehlsshell für dieses Projekt.
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>"
Wählen Sie jetzt die Sprache für Ihr Projekt aus.
Fügen Sie ein neues Projekt namens
publisher
und das SDK-PaketAzure.Messaging.WebPubSub
hinzu.mkdir publisher cd publisher dotnet new console dotnet add package Azure.Messaging.WebPubSub
Aktualisieren Sie die Datei
Program.cs
, sodass die KlasseWebPubSubServiceClient
verwendet wird, um Nachrichten an die Clients zu senden. Ersetzen Sie den Code in der DateiProgram.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.Führen Sie den folgenden Befehl aus, um eine Nachricht für den Dienst zu veröffentlichen.
dotnet run $connection_string "myHub1" "Hello World"
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