Implement parallel Happy Eyeballs as described in RFC 8305
Nadie ha tomado este issue todavía.
- 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
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.
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