Node.js EPIPE pēc savienojuma ar SOCKS starpniekserveri
Interpretējiet Node EPIPE pēc savienojuma ar SOCKS galapunktu un pārbaudiet, vai nepieciešamā handshake ir pabeigta.
Node ligzdas connect notikums norāda, ka TCP ir sasniedzis starpniekserveri. Tas nenorāda, ka starpniekserveris ir atvēris savienojumu ar galamērķi.
SOCKS5 serveris pirms lietotnes trafika gaida metodes sarunas, izvēlētu autentifikāciju un galamērķa pieprasījumu. Ja HTTP pieprasījumu nosūta nekavējoties, serveris var aizvērt savienojumu. Vēlāka rakstīšana tad var radīt EPIPE.
EPIPE viens pats nepierāda trūkstošu handshake. Tas ziņo par rakstīšanu savienojumā, kura otrā puse vairs nepieņem šo saziņu. Izlasiet iepriekšējos notikumus un protokola atbildes, lai noskaidrotu, kāpēc otrā puse aizvēra savienojumu.
Izmantojiet savienotāju, kas ievieš pilnu SOCKS apmaiņu. Node galvenajam HTTPS klientam SOCKS informēts aģents var veikt šo sarunu pirms galamērķa TLS. Ja apmaiņu ieviešat pats, uzkrājiet datus atbilstoši protokola lauku garumiem. Nav garantēts, ka viens data notikums satur vienu pilnīgu atbildi, un atgrieztā piesaistītā adrese nav jāsakrīt ar vienu cieti kodētu baitu virkni.
Reģistrējiet kļūdu apstrādi pirms darbība var neizdoties, saglabājiet savienojuma posmu kļūdas ziņojumā un sūtiet galamērķa protokolu tikai pēc veiksmīgas sarunas. Kļūdas uztveršana novērš neapstrādātu notikumu; tā nelabo nederīgu apmaiņu.