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.
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
Öppna ett nytt kommandogränssnitt för det här projektet.
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>"
Välj nu språk för projektet.
Lägg till ett nytt projekt med namnet
publisher
och SDK-paketetAzure.Messaging.WebPubSub
.mkdir publisher cd publisher dotnet new console dotnet add package Azure.Messaging.WebPubSub
Program.cs
Uppdatera filen så att denWebPubSubServiceClient
använder klassen för att skicka meddelanden till klienterna. Ersätt koden iProgram.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.Kör följande kommando för att publicera ett meddelande till tjänsten.
dotnet run $connection_string "myHub1" "Hello World"
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
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för