nodejs / nodejs/node

Implement parallel Happy Eyeballs as described in RFC 8305

Abierto
#48,145 16 comentarios 13 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

feature request net never-stale
Lenguaje dominante
JavaScript
Estrellas
122k
Forks
37.3k
Merge medio
4 d 2 h
PR fusionados (30 d)
283

Descripción

What is the problem this feature will solve?

autoSelectFamily is enabled by default in Node.js 20. However, it does not properly implement parallel connection attempts, which are an integral part of the Happy Eyeballs algorithm. This can cause timeouts to occur that did not occur in versions prior to Node.js 20. See, for example, this discussion.

What is the feature you are proposing to solve the problem?

Implement the algorithm as described in Section 5 of RFC 8305:

Starting a new connection attempt does not affect previous attempts, as multiple connection attempts may occur in parallel.

What alternatives have you considered?

Disabling autoSelectFamily and restoring the pre-20 behavior, see https://github.com/nodejs/node/issues/47644#issuecomment-1554440759.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza por la Section 5 de RFC 8305 y compara sus requisitos para los intentos de conexión en paralelo con el comportamiento actual de autoSelectFamily de Node.js. Usa la discusión enlazada y el comportamiento anterior a la versión 20 referenciado en el issue para entender la regresión; se considera terminado cuando los intentos de conexión puedan continuar en paralelo sin afectar a los intentos anteriores y se aborde el comportamiento de timeout notificado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript, nodejs
Área
networking
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.