Condividi tramite


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 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 .

.NET Core

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

  1. Aprire una nuova shell dei comandi per questo progetto.

  2. 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>"
    
  3. Selezionare ora la lingua per il progetto.

  1. Aggiungere un nuovo progetto denominato publisher e il pacchetto Azure.Messaging.WebPubSubSDK .

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Aggiornare il Program.cs file in modo che usi la WebPubSubServiceClient classe per inviare messaggi ai client. Sostituire il codice nel Program.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.

  3. Eseguire il comando seguente per pubblicare un messaggio nel servizio.

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. 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