¿Cuánto tiempo puede permanecer abierto un túnel CONNECT?
Separe la vida de un túnel establecido de la reutilización de respuestas HTTP, de las políticas de inactividad del intermediario y de la propia sesión de la aplicación de destino.
CONNECT no promete un túnel abierto indefinidamente. Tras un intercambio correcto, la conexión transporta un flujo continuo de bytes hacia el host y el puerto solicitados. Puede transportar varios intercambios dentro de una sesión TLS de destino mientras los participantes y la red la mantengan abierta.
Dos límites del proxy se comportan de forma distinta: el tráfico puede impedir que caduque un temporizador de inactividad, pero no puede ampliar un límite de vida absoluto. El protocolo de destino también tiene voz. Un cliente HTTP interno puede cerrar su conexión; una aplicación WebSocket puede terminar su sesión. El proxy no puede mantener viva esa sesión de destino después.
Un túnel está atado a su objetivo. Una vez que fluyen los bytes del túnel, la conexión ya no es un canal de peticiones HTTP ordinario sobre el que emitir otro CONNECT para un destino no relacionado. El cliente necesita otra conexión u otro túnel gestionado por su biblioteca.
Para un feed persistente, planifique reconexiones con los mecanismos de vitalidad y conexión que admita el cliente. Si se cierra tras un silencio, una política de inactividad es una pista útil; si se cierra tras una duración fija pese al tráfico, investigue en cambio un límite absoluto. Para un feed WebSocket, restaure también el estado de la aplicación tras reconectar.