Implement parallel Happy Eyeballs as described in RFC 8305
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 122k
- Forks
- 37.3k
- Merge moyen
- 4 j 2 h
- PR mergées (30 j)
- 283
Description
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.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la Section 5 de RFC 8305 et comparez ses exigences concernant les tentatives de connexion parallèles avec le comportement actuel de autoSelectFamily de Node.js. Utilisez la discussion liée et le comportement antérieur à la version 20 référencé dans l’issue pour comprendre la régression ; le travail est terminé lorsque les tentatives de connexion peuvent se poursuivre en parallèle sans affecter les tentatives précédentes et que le comportement de timeout signalé est pris en compte.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, nodejs
- Domaine
- networking
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100