Happy Eyeballs support (address IPv6 issues in Node 17)
What is the problem this feature will solve?
It appears that node 17 has merged this PR: https://github.com/nodejs/node/pull/39987 which may result in IPv6 addresses being sorted first.
As per an answer in this reddit thread from @treysis
: https://www.reddit.com/r/ipv6/comments/qbr8jc/comment/hhmg7uz/?context=3 it appears that Happy Eyeballs is not implemented however.
The lack of Happy Eyeballs support can result in connections failing. In particular, there are a lot of data points related to similar support lacking from the OkHttp library which is used heavily on Android and results in connectivity issues for a relatively big number of users. Ref: https://github.com/square/okhttp/issues/506#issuecomment-990770121
The problem is that consumer routers sometimes glitch out on IPv6.
A router I manage in one particular location, which is a consumer grade TP-Link router, will routinely hang on IPv6 connections about once per month, until it is restarted. More on this here: https://github.com/square/okhttp/issues/6954#issuecomment-990908698
I have noticed that Node 17 will then pretty much hang on outgoing connections for up to one minute before eventually being able to connect. Restarting the router resolves the issue.
What is the feature you are proposing to solve the problem?
Implement the Happy Eyeballs algorithm.
What alternatives have you considered?
There is an user-land patch here: https://www.npmjs.com/package/happy-eyeballs by @zwhitchcox
which might help as a workaround.