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 un cliente o una conexión de cliente es una relación lógica entre un cliente y el servicio Web PubSub. A través de una "conexión", el cliente y el servicio interactúan en una serie de interacciones con estado. Las conexiones que usan distintos protocolos pueden comportarse de forma diferente, por ejemplo, algunas conexiones están limitadas a la duración de una conexión de red, mientras que otras pueden extenderse a través de múltiples conexiones de red sucesivas entre un cliente y el servicio.
Centro de conectividad: un centro de conectividad es un concepto lógico relativo a un conjunto de conexiones de clientes. Normalmente se utiliza un centro para un escenario, por ejemplo, un centro de chat, o un centro de notificación. 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 existe un límite estricto para el número de centros, un centro consume más carga de servicio en comparación con un grupo. Se recomienda tener un conjunto predeterminado de centros 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.
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 eventoconnected
cuando se conecta correctamente al servicio, un eventomessage
cuando envía mensajes al servicio y un eventodisconnected
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 de REST como texto sin formato. Por lo tanto, NO ponga 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:
Como se muestra en el gráfico de flujo de trabajo anterior:
Un cliente se conecta a un centro en el servicio mediante el transporte de WebSocket. El servicio puede reenviar los mensajes al ascendente configurado (servidor) o controlar los mensajes por sí mismos y permitir que los clientes realicen pub/sub directamente, en función del protocolo que use el cliente. En Protocolos del cliente se describen los detalles.
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.
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.