Conceptos básicos de Azure Web PubSub

El servicio Azure Web PubSub le ayuda a crear aplicaciones web de mensajería en tiempo real. Los clientes se conectan al servicio mediante el protocolo WebSocket estándar y el servicio expone las API REST y los SDK para que pueda administrar estos clientes.

Términos

Estos son algunos términos importantes que usa el servicio:

  • Conexión: una conexión, también conocida como "cliente" o "conexión de cliente", representa una conexión WebSocket individual conectada al servicio Web PubSub. Cuando se conecta correctamente, el servicio Web PubSub asigna un identificador de conexión único a esta conexión.

  • Centro de conectividad: un centro de conectividad es un concepto lógico relativo a un conjunto de conexiones de clientes. Normalmente, se usa un centro para un escenario, por ejemplo, un centro de chat o un centro de notificaciones . Cuando se establece una conexión de cliente, esta se realiza con un centro de conectividad y, durante su vigencia, pertenece a dicho centro. Una vez que una conexión de cliente se conecta al centro, el centro existe. Diferentes aplicaciones pueden compartir un servicio de Azure Web PubSub mediante el uso de nombres de centros de conectividad diferentes. Aunque no hay ningún límite estricto en el número de concentradores, un centro consume más carga de servicio en comparación con un grupo. Se recomienda tener un conjunto predeterminado de concentradores en lugar de generarlos dinámicamente.

  • Grupo: un grupo es un subconjunto de conexiones al centro de conectividad. Puede agregar una conexión de cliente a un grupo o quitarla de este cuando quiera. Por ejemplo, cuando un cliente se une a una sala de chat o sale de ella, dicha sala puede considerarse un grupo. Un cliente puede unirse a varios grupos, y un grupo puede contener varios clientes. El grupo es como una"sesión" de grupo. La sesión de grupo se crea cuando alguien se une al grupo y la sesión desaparece cuando no hay nadie en el grupo. Los mensajes enviados al grupo se entregan a todos los clientes conectados al grupo.

  • Usuario: las conexiones a Web PubSub pueden pertenecer a un usuario. Un usuario puede tener varias conexiones, por ejemplo, cuando está conectado a través de varios dispositivos o distintas pestañas del explorador.

  • Mensaje: cuando el cliente está conectado, puede enviar mensajes a la aplicación de nivel superior o recibir mensajes de esta, mediante la conexión WebSocket. Los mensajes pueden estar en formato de texto sin formato, binario o JSON y tener un tamaño máximo de 1 MB.

  • Conexión del cliente y ConnectionId: Un cliente se conecta al punto de conexión /client, cuando está conectado, el servicio genera un único connectionId como identidad única de la conexión del cliente. A continuación, los usuarios pueden administrar la conexión del cliente mediante este connectionId. En la sección Protocolo del cliente se describen más detalles.

  • Eventos del cliente: Los eventos se crean durante el ciclo de vida de una conexión del cliente. Por ejemplo, una conexión del cliente WebSocket simple crea un evento connect cuando intenta conectarse al servicio, un evento connected cuando se conecta correctamente al servicio, un evento message cuando envía mensajes al servicio y un evento disconnected cuando se desconecta del servicio. En la sección Protocolo del cliente se describen más detalles sobre los eventos del cliente.

  • Controlador de eventos: El controlador de eventos contiene la lógica para controlar los eventos del cliente. Registre y configure controladores de eventos en el servicio a través del portal o la CLI de Azure de antemano. En la sección Controlador de eventos se describen más detalles.

  • Cliente de escucha de eventos (versión preliminar): el cliente de escucha de eventos solo escucha los eventos de cliente, pero no puede interferir en la duración de los clientes mediante su respuesta. En la sección Cliente de escucha de eventos se describen más detalles.

  • Servidor: el servidor puede controlar eventos de cliente, administrar las conexiones del cliente o publicar mensajes en grupos. Tanto el controlador de eventos como el agente de escucha de eventos se consideran del lado servidor. En la sección Protocolo del servidor se describen más detalles sobre el servidor.

Importante

Hub, Group, UserId son roles importantes al administrar clientes y enviar mensajes. Serán parámetros obligatorios en diferentes llamadas API REST como texto sin formato. Por lo tanto , NO coloque información confidencial en estos campos. Por ejemplo, credenciales o tokens de portador que tendrán un alto riesgo de pérdida.

Flujo de trabajo

A continuación, se muestra un flujo de trabajo típico que usa el servicio:

Diagram showing the Web PubSub service workflow.

Como se muestra en el gráfico de flujo de trabajo anterior:

  1. Un cliente se conecta al punto de conexión /client del servicio mediante el transporte de WebSocket. El servicio reenvía cada marco de WebSocket al servidor ascendente configurado. La conexión de WebSocket puede conectarse con cualquier subprotocolo personalizado para que el servidor lo controle, o bien puede conectarse con el subprotocolo json.webpubsub.azure.v1 compatible con el servicio, que permite a los clientes publicar o suscribir directamente. En Protocolos del cliente se describen los detalles.

  2. El servicio invoca el servidor mediante el protocolo CloudEvents en eventos de cliente diferentes. CloudEvents es una definición del protocolo, estandarizada e independiente de la estructura, y una descripción de metadatos de los eventos hospedados por Cloud Native Computing Foundation (CNCF). Los detalles se describen en Protocolo del servidor.

  3. El servidor puede invocar el servicio mediante la API REST para enviar mensajes a los clientes o para administrar los clientes conectados. Los detalles se describen en Protocolo del servidor.