Share via


Configuración de la API para eventos enviados por el servidor

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

En este artículo se proporcionan instrucciones para configurar una API en API Management que implementa eventos enviados por el servidor (SSE). SSE se basa en el estándar HTML5 EventSource para transmitir (insertar) datos automáticamente a un cliente a través de HTTP después de que un cliente haya establecido una conexión.

Sugerencia

API Management también proporciona compatibilidad nativa con las API de WebSocket, que mantienen abierta una conexión única y persistente entre un cliente y un servidor.

Requisitos previos

Directrices para SSE

Siga estas directrices al usar API Management para acceder a una API de back-end que implemente SSE.

  • Elija el nivel de servicio para las conexiones HTTP de larga ejecución: SSE se basa en una conexión HTTP de larga ejecución que se admite en determinados planes de tarifa de API Management. Las conexiones de larga ejecución se admiten en los niveles API Management clásico y v2, pero no en el nivel de consumo.

  • Mantenga las conexiones inactivas activas: si una conexión entre el cliente y el back-end puede estar inactiva durante 4 minutos o más, implemente un mecanismo para mantener la conexión activa. Por ejemplo, habilite una señal TCP keepalive en el back-end de la conexión o envíe tráfico desde el lado cliente al menos una vez cada 4 minutos.

    Esta configuración es necesaria para invalidar el tiempo de espera de la sesión inactiva de 4 minutos que aplica el Azure Load Balancer, que se usa en la infraestructura de API Management.

  • Retransmita eventos inmediatamente a los clientes: desactive el almacenamiento en búfer de respuesta en la forward-requestdirectiva para que los eventos se retransmitan inmediatamente a los clientes. Por ejemplo:

    <forward-request timeout="120" fail-on-error-status-code="true" buffer-response="false"/>
    
  • Evitar otras directivas que almacena en búfer las respuestas: ciertas directivas como validate-content también pueden almacenar en búfer el contenido de la respuesta y no deben usarse con las API que implementan SSE.

  • Evitar el registro del cuerpo de la solicitud/respuesta para Azure Monitor, Application Insights y Event Hubs: puede configurar el registro de solicitudes de API para Azure Monitor o Application Insights usando la configuración de diagnóstico. La configuración de diagnóstico te permite registrar el cuerpo de la solicitud/respuesta en varias etapas de la ejecución de la solicitud. Para las API que implementan SSE, esto puede causar un almacenamiento en búfer inesperado que puede generar problemas. La configuración de diagnóstico para Azure Monitor y Application Insights configurada en el ámbito global/todas las API se aplica a todas las API del servicio. Puedes invalidar la configuración de las API individuales según sea necesario. Al iniciar sesión en Event Hubs, configure el ámbito y la cantidad de información de contexto para el registro de solicitudes y respuestas mediante los centros de registro a eventos. En el caso de las API que implementan SSE, asegúrese de que ha deshabilitado el registro de cuerpo de solicitud y respuesta para Azure Monitor, Application Insights y Event Hubs.

  • Deshabilitar el almacenamiento en caché de respuestas: para asegurarse de que las notificaciones al cliente son rápidas, compruebe que el almacenamiento en caché de respuestas no está habilitado. Para más información, consulte Directivas de almacenamiento en caché de API Management.

  • Prueba de API bajo carga: siga los procedimientos generales para probar la API bajo carga para detectar problemas de rendimiento o configuración antes de pasar a producción.

Pasos siguientes