Node 18 will close proxied websocket connections after ~60 seconds
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, node.js
- Área
- backend, networking
Línea de trabajo
Comienza con la configuración del servidor proxy y el servidor devuelto por app.listen, y luego compara el comportamiento de headersTimeout y requestTimeout de Node 18 con la solución alternativa enlazada. Reproduce una conexión WebSocket a través de un proxy que dure más de 60 segundos y verifica que ya no reciba HTTP 408 Request Timeout; el issue no menciona ningún archivo del repositorio ni ninguna prueba para comenzar.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
With Nodejs 18 another set of http timeouts have been introduced:
headersTimeoutrequestTimeout
see: https://nodejs.org/en/blog/release/v18.0.0/#http-timeouts
These timeouts cause that established websocket connections are closed after roughly 60 seconds.
if you inspect the websocket connection via Wireshark, you see that nodejs just sends:
HTTP/1.1 408 Request Timeout
Connection: close
Through the websocket connection after the timeout.
The simplest workaround to prevent this, is to set both timeouts to zero:
const app = express();
[...]
const server = app.listen(process.env.SERVER_PORT);
// disable timeouts as otherwise websocket connections are closed after ~60-90 seconds
server.headersTimeout = 0;
server.requestTimeout = 0;
Other libs actually implemented some handling for these cases: e.g. https://github.com/vercel/next.js/commit/486b36237a213ebf4c19a3bd8f296fad5b400a64
It would be nice if this could be somehow addressed as part of this lib.
- Lenguaje dominante
- JavaScript
- Estrellas
- 14.1k
- Forks
- 2k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de http-party/node-http-proxy
-
util._extend() is depracatoryAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
http-party/node-http-proxy#1719 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
http-party/node-http-proxy#1721 · 1 comentario ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 55/100
http-party/node-http-proxy#1715 · 1 comentario · 5 reacciones ·
-
Is this library is dead?Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 15/100
http-party/node-http-proxy#1711 · 2 comentarios ·
-
HTTP3 + QUIC support?Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
http-party/node-http-proxy#1710 · 5 reacciones ·
Todos los issues de http-party/node-http-proxy
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
microsoft/TypeScript#65370 ·
Los mantenedores suelen responder en 1 día
-
enhancement good first issue priority: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
TMHSDigital/Free-Game-Dev-Assets#272 ·
Los mantenedores suelen responder en 1 día
-
metrics priority: medium
Dificultad 1/5 1-3 horas Aptitud para principiantes 86/100
LearningCircuit/local-deep-research#8336 ·
Los mantenedores suelen responder en 1 día
-
ace bug yaml
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
svelte: whitespace-only edit leaves an empty todo, edits not trimmed, filter not restored on reloadAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100