Share via


Inicio rápido: Publicación de mensajes mediante el SDK del servicio Azure Web PubSub

Azure Web PubSub le ayuda a administrar clientes de WebSocket. En este inicio rápido, se muestra cómo publicar mensajes en los clientes de WebSocket mediante el SDK del servicio Azure Web PubSub.

Requisitos previos

  • Una suscripción de Azure; si no tiene una, cree una cuenta gratuita.
  • Un shell de comandos de Bash y PowerShell. Los ejemplos de Python, Javascript y Java requieren un shell de comandos Bash.
  • Un editor de archivos como VSCode.
  • CLI de Azure: instalación de la CLI de Azure

Si crea el proyecto en un equipo local, deberá instalar las dependencias para el lenguaje que usa:

Instale tanto el SDK de .NET  Core como el entorno de ejecución de aspnetcore y dotnet.

.NET Core

1. Instalación

Para iniciar sesión en Azure desde la CLI, ejecute el siguiente comando y siga las indicaciones para completar el proceso de autenticación. Si usa Cloud Shell, no es necesario iniciar sesión.

az login

Asegúrese de que ejecuta la versión más reciente de la CLI con el comando de actualización.

az upgrade

A continuación, instale o actualice la extensión Azure Web PubSub para la CLI si no se instaló con az upgrade.

az extension add --name webpubsub --upgrade

1. Creación de un grupo de recursos

Establezca las siguientes variables de entorno. Reemplace el <marcador de posición> por un nombre único de Web PubSub.

RESOURCE_GROUP="webpubsub-resource-group"
LOCATION="EastUS"
WEB_PUBSUB_NAME="<your-unique-name>"

Cree un grupo de recursos para el proyecto Web PubSub.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

2. Creación de una instancia del servicio Web PubSub

Use el comando az webpubsub create para crear e implementar una instancia del servicio Web PubSub.

az webpubsub create \
  --name $WEB_PUBSUB_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --sku Free_F1

Guarde la cadena de conexión del servicio. El SDK del servicio usa la cadena de conexión para publicar mensajes.

Importante

En un entorno de producción, debe almacenar de forma segura cadenas de conexión mediante Azure Key Vault.

az webpubsub key show --name $WEB_PUBSUB_NAME --resource-group $RESOURCE_GROUP --query primaryConnectionString

3. Conexión de un cliente a la instancia del servicio

Cree un cliente Web PubSub. El cliente mantiene una conexión al servicio hasta que finaliza.

Use el comando az webpubsub client para iniciar una conexión del cliente de WebSocket al servicio. Los clientes siempre se conectan a un centro, por lo que debe proporcionar el nombre del centro al que se va a conectar el cliente.

az webpubsub client start \
  --name $WEB_PUBSUB_NAME \
  --resource-group $RESOURCE_GROUP \
  --hub-name "myHub1" \
  --user-id "user1"

La conexión con el servicio Web PubSub se establece cuando aparece un mensaje JSON que indica que el cliente se ha conectado correctamente, y se le asigna un connectionId único:

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

4. Publicación de mensajes mediante el SDK del servicio

Usará el SDK de Azure Web PubSub para publicar un mensaje en todos los clientes conectados al centro. Puede elegir entre C#, JavaScript, Python y Java. Las dependencias de cada lenguaje se instalan en los pasos para ese idioma. Python, JavaScript y Java requieren un shell de Bash para ejecutar los comandos en este inicio rápido.

Configuración del proyecto para publicar mensajes

  1. Abra un nuevo shell de comandos para este proyecto.

  2. Guarde la cadena de conexión desde el shell de cliente. Reemplace el marcador de posición <your_connection_string> por la cadena de conexión que ha mostrado en un paso anterior.

    connection_string="<your_connection_string>"
    
  3. Ahora, seleccione el lenguaje del proyecto.

  1. Agregue un nuevo proyecto llamado publisher y el paquete del SDK Azure.Messaging.WebPubSub.

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Actualice el archivo Program.cs para que use la clase WebPubSubServiceClient para enviar mensajes a los clientes. Reemplace el código del archivo Program.cs por el código siguiente.

    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 llamada service.SendToAllAsync() simplemente envía un mensaje a todos los clientes conectados en el centro.

  3. Ejecute el siguiente comando para publicar un mensaje en el servicio.

    dotnet run $connection_string "myHub1" "Hello World"
    
  4. El shell de comandos anterior que contiene el cliente de Web PubSub muestra el mensaje recibido.

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

Limpieza

Puede eliminar los recursos que creó en este inicio rápido eliminando el grupo de recursos que los contiene.

az group delete --name $RESOURCE_GROUP --yes