Comparteix via


Importación de WebSocket API

SE APLICA A: Desarrollador | Básico | Básico v2 | Estándar | Estándar v2 | Premium | Premium v2

Con la solución de API WebSocket de API Management, los publicadores de API pueden agregar rápidamente una API de WebSocket en API Management a través de Azure Portal, la CLI de Azure, Azure PowerShell y otras herramientas de Azure.

Las APIs de WebSocket se pueden proteger aplicando las directivas de control de acceso de API Management a la operación de protocolo de enlace inicial. También puede probar las API de WebSocket mediante las consolas de prueba de las API en Azure Portal y el portal para desarrolladores. A través de las funcionalidades de observabilidad existentes, API Management proporciona métricas y registros para supervisar y solucionar problemas de las API de WebSocket.

En este artículo, usted podrá:

  • Comprenderá el flujo de tráfico de Websocket.
  • Agrega una API de WebSocket a tu instancia de administración de API.
  • Prueba tu API de WebSocket.
  • Visualizará las métricas y los registros de la API de WebSocket.
  • Conocerá las limitaciones de la API de WebSocket.

Requisitos previos

Passthrough de WebSocket

API Management admite el paso directo de WebSocket.

Ilustración visual del flujo de tráfico de WebSocket

Durante el passthrough de WebSocket, la aplicación cliente establece una conexión de WebSocket con la puerta de enlace de API Management, que a su vez establece una conexión con los servicios de fondo correspondientes. A continuación, API Management envía mediante proxy los mensajes entre cliente y servidor de WebSocket.

  1. La aplicación cliente envía una solicitud de enlace de WebSocket a la puerta de enlace, invocando la operación onHandshake.
  2. La gateway de gestión de API aplica las directivas configuradas y envía solicitudes de enlace de protocolo WebSocket al servicio backend correspondiente.
  3. El servicio back-end actualiza una conexión a WebSocket.
  4. La puerta de enlace actualiza la conexión correspondiente a WebSocket.
  5. Una vez establecido el par de conexiones, API Management se encarga de intercambiar mensajes entre la aplicación cliente y el servicio backend.
  6. La aplicación cliente envía un mensaje a la puerta de enlace.
  7. La puerta de enlace reenvía el mensaje al servicio back-end.
  8. El servicio back-end envía un mensaje a la puerta de enlace.
  9. La puerta de enlace reenvía el mensaje a la aplicación cliente.
  10. Cuando cualquier lado se desconecta, API Management finaliza la conexión correspondiente.

Nota:

Las conexiones del lado del cliente y del lado del servidor constan de una asignación uno a uno.

Operación onHandshake

Según el protocolo WebSocket, cuando una aplicación cliente intenta establecer una conexión WebSocket con un servicio backend, primero enviará una solicitud de inicio de comunicación. Cada API de WebSocket en API Management tiene una operación onHandshake. La operación onHandshake es una operación del sistema inmutable, que no se puede eliminar y que se crea automáticamente. La operación onHandshake permite a los publicadores de API interceptar estas solicitudes de handshake y aplicarles las directivas de API Management.

Ejemplo de pantalla de onHandshake

Adición de una API de WebSocket

    1. Vaya a la instancia de API Management en Azure Portal.
  1. En el menú izquierdo, seleccione API>+Agregar API.

  2. En Definir una nueva API, seleccione WebSocket.

  3. En el cuadro de diálogo, seleccione Completo y rellene los campos necesarios del formulario.

    Campo Descripción
    Nombre para mostrar Nombre por el que se muestra la API de WebSocket.
    Nombre Nombre crudo de la API de WebSockets. Se rellena automáticamente a medida que escribe el nombre de visualización.
    URL de WebSocket Dirección URL base con el nombre de tu WebSocket. Por ejemplo: ws://example.com/your-socket-name
    Esquema URL Acepte el valor predeterminado.
    Sufijo de URL de API Agregue un sufijo de URL para identificar esta API específica en esta instancia de API Management. Tiene que ser único en esta instancia de API Management.
    Productos Asocie la API de WebSocket a un producto para publicarla.
    Puertas de enlace Asocie la API de WebSocket a las puertas de enlace existentes.
  4. Haga clic en Crear.

Prueba de la API de WebSocket

  1. Navegue hasta la API de WebSocket.

  2. En la API de WebSocket, seleccione la operación onHandshake.

  3. Seleccione la pestaña Prueba para acceder a la consola Prueba.

  4. De ser necesario, proporcione los parámetros de cadena de consulta requeridos para el protocolo de enlace WebSocket.

    Ejemplo de API de prueba

  5. Haga clic en Conectar.

  6. Vea el estado de la conexión en Salida.

  7. Escriba el valor en Carga.

  8. Haga clic en Enviar.

  9. Vea los mensajes recibidos en Salida.

  10. Repita los pasos anteriores para probar diferentes cargas.

  11. Cuando se complete la prueba, seleccione Desconectar.

Visualización de métricas y registros

Use características estándar de API Management y Azure Monitor para supervisar las API de WebSocket:

  • Visualización de métricas de API en Azure Monitor
  • Opcionalmente, habilite la configuración de diagnóstico para recopilar y ver registros de puerta de enlace de API Management, que incluyen operaciones de API de WebSocket o registros de conexión de WebSocket.

Por ejemplo, en la siguiente captura de pantalla se muestran las respuestas recientes de la API de WebSocket con código de la tabla . Estos resultados indican el cambio correcto de las solicitudes de TCP al protocolo WebSocket.

Consulta de registros para solicitudes de API de WebSocket

Limitaciones

A continuación se muestran las restricciones actuales de compatibilidad con WebSocket en API Management:

  • Las API de WebSocket no se admiten aún en el nivel de consumo.
  • Las API WebSocket admiten los siguientes tipos de búferes válidos para mensajes: Close, BinaryFragment, BinaryMessage, UTF8Fragment y UTF8Message.
  • Actualmente, la política set-header no admite el cambio de ciertos encabezados bien conocidos, incluidos los encabezados Host, en las solicitudes onHandshake.
  • Durante el handshake TLS con un backend WebSocket, la API Management valida que el certificado del servidor sea de confianza y que su nombre de sujeto coincida con el nombre del host. Con las API de HTTP, API Management valida que el certificado es de confianza, pero no valida que el nombre de host y el asunto coincidan.

Para conocer los límites de conexión de WebSocket, consulte límites de API Management.

Directivas no admitidas

Las siguientes directivas no son compatibles con la operación onHandshake y no se pueden aplicar a ella:

  • Respuesta simulada
  • Obtención desde memoria caché
  • Almacenar en caché
  • Permitir llamadas entre dominios
  • CORS
  • JSONP
  • Establecimiento de método de solicitud
  • Definir cuerpo
  • Convertir XML a JSON
  • Convertir JSON a XML
  • Transformar XML mediante XSLT
  • Validar contenido
  • Validación de parámetros
  • Validación de encabezados
  • Validación de código de estado

Nota:

Si aplicó las directivas en ámbitos superiores (por ejemplo, a nivel global o de producto) y una API WebSocket las heredó mediante la directiva, se pasarán por alto automáticamente en tiempo de ejecución.