Guida introduttiva: Pubblicare messaggi con Azure Web PubSub Service SDK
Web PubSub di Azure consente di gestire i client WebSocket. Questa guida introduttiva illustra come pubblicare messaggi nei client WebSocket usando l'SDK del servizio Web PubSub di Azure.
Prerequisiti
- Se non si ha una sottoscrizione di Azure, creare un account gratuito.
- una shell dei comandi Bash e PowerShell. Gli esempi Python, JavaScript e Java richiedono una shell dei comandi Bash.
- Un editor di file, ad esempio VSCode.
- Interfaccia della riga di comando di Azure: installare l'interfaccia della riga di comando di Azure
Se si crea il progetto in un computer locale, è necessario installare le dipendenze per la lingua in uso:
Installare sia .NET Core SDK che il aspnetcore
runtime dotnet e .
1. Installazione
Per accedere ad Azure dall'interfaccia della riga di comando, eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione. Se si usa Cloud Shell, non è necessario eseguire l'accesso.
az login
Assicurarsi di eseguire la versione più recente dell'interfaccia della riga di comando tramite il comando di aggiornamento.
az upgrade
Installare o aggiornare quindi l'estensione PubSub Web di Azure per l'interfaccia della riga di comando se non è stata installata con az upgrade
.
az extension add --name webpubsub --upgrade
1. Creare un gruppo di risorse
Impostare le variabili di ambiente seguenti. Sostituire il <segnaposto con un nome Web PubSub univoco> .
RESOURCE_GROUP="webpubsub-resource-group"
LOCATION="EastUS"
WEB_PUBSUB_NAME="<your-unique-name>"
Creare un gruppo di risorse per il progetto Web PubSub.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
2. Distribuire un'istanza del servizio Web PubSub
Usare il comando per creare e distribuire un'istanza az webpubsub create
del servizio Web PubSub.
az webpubsub create \
--name $WEB_PUBSUB_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--sku Free_F1
Salvare la stringa di connessione del servizio. La stringa di connessione viene usata dall'SDK del servizio per pubblicare i messaggi.
Importante
In un ambiente di produzione è consigliabile archiviare in modo sicuro le stringhe di connessione usando Azure Key Vault.
az webpubsub key show --name $WEB_PUBSUB_NAME --resource-group $RESOURCE_GROUP --query primaryConnectionString
3. Connettere un client all'istanza del servizio
Creare un client PubSub Web. Il client mantiene una connessione al servizio fino a quando non viene terminata.
Usare il az webpubsub client
comando per avviare una connessione client WebSocket al servizio. I client si connettono sempre a un hub, quindi specificano un nome hub a cui connettersi il client.
az webpubsub client start \
--name $WEB_PUBSUB_NAME \
--resource-group $RESOURCE_GROUP \
--hub-name "myHub1" \
--user-id "user1"
La connessione al servizio Web PubSub viene stabilita quando viene visualizzato un messaggio JSON che indica che il client è stato connesso correttamente e a cui viene assegnato un valore univoco connectionId
:
{"type":"system","event":"connected","userId":"user1","connectionId":"<your_unique_connection_id>"}
4. Pubblicare messaggi con l'SDK del servizio
Si userà Azure Web PubSub SDK per pubblicare un messaggio in tutti i client connessi all'hub. È possibile scegliere tra C#, JavaScript, Python e Java. Le dipendenze per ogni lingua vengono installate nei passaggi per tale lingua. Python, JavaScript e Java richiedono una shell bash per eseguire i comandi in questa guida introduttiva.
Configurare il progetto per pubblicare messaggi
Aprire una nuova shell dei comandi per questo progetto.
Salvare la stringa di connessione dalla shell client. Sostituire il
<your_connection_string>
segnaposto con la stringa di connessione visualizzata in un passaggio precedente.connection_string="<your_connection_string>"
Selezionare ora la lingua per il progetto.
Aggiungere un nuovo progetto denominato
publisher
e il pacchettoAzure.Messaging.WebPubSub
SDK .mkdir publisher cd publisher dotnet new console dotnet add package Azure.Messaging.WebPubSub
Aggiornare il
Program.cs
file in modo che usi laWebPubSubServiceClient
classe per inviare messaggi ai client. Sostituire il codice nelProgram.cs
file con il codice seguente.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); } } }
La
service.SendToAllAsync()
chiamata invia semplicemente un messaggio a tutti i client connessi nell'hub.Eseguire il comando seguente per pubblicare un messaggio nel servizio.
dotnet run $connection_string "myHub1" "Hello World"
La shell dei comandi precedente contenente il client Web PubSub mostra il messaggio ricevuto.
{"type":"message","from":"server","dataType":"text","data":"Hello World"}
Pulizia
È possibile eliminare le risorse create in questa guida introduttiva eliminando il gruppo di risorse che li contiene.
az group delete --name $RESOURCE_GROUP --yes