Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Prerrequisitos
- 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 VS Code.
- CLI de Azure: instalación de la CLI de Azure
Si crea el proyecto en una máquina 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.
1. Configuració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
Abra un nuevo shell de comandos para este proyecto.
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>"Ahora, seleccione el lenguaje del proyecto.
Agregue un nuevo proyecto llamado
publishery el paquete del SDKAzure.Messaging.WebPubSub.mkdir publisher cd publisher dotnet new console dotnet add package Azure.Messaging.WebPubSubActualice el archivo
Program.cspara que use la claseWebPubSubServiceClientpara enviar mensajes a los clientes. Reemplace el código del archivoProgram.cspor 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.Ejecute el siguiente comando para publicar un mensaje en el servicio.
dotnet run $connection_string "myHub1" "Hello World"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 mediante la eliminación del grupo de recursos que los contiene.
az group delete --name $RESOURCE_GROUP --yes