Node.js EPIPE etter tilkopling til ein SOCKS-proxy
Tolk Nodes EPIPE etter tilkopling til eit SOCKS-endepunkt og kontroller om den påkravde handshaken vart fullført.
connect-hendinga i Node-socketen fortel deg at TCP nådde proxyen. Ho seier ikkje at proxyen har opna ei tilkopling til målet.
Ein SOCKS5-server ventar metodenegotiering, eventuell vald autentisering og ein destinasjonsførespurnad før applikasjonstrafikken. Sendar du ein HTTP-førespurnad med ein gong, kan serveren lukke tilkoplinga. Ei seinare skriving kan då gje EPIPE.
EPIPE åleine provar ikkje ein manglande handshake. Det rapporterer ei skriving til ei tilkopling der motparten ikkje lenger godtek denne kommunikasjonen. Les dei tidlegare hendingane og protokollsvar for å finne ut kvifor motparten lukka.
Bruk ein connector som implementerer heile SOCKS-utvekslinga. For kjerne-HTTPS-klienten i Node kan ein SOCKS-medviten agent utføre den forhandlinga før TLS-en til målet. Implementerer du utvekslinga sjølv, må du samle data etter feltlengdene i protokollen. Det er ikkje garantert at éi data-hending inneheld eitt fullstendig svar, og den returnerte bundne adressa treng ikkje samsvare med éin hardkoda byte-streng.
Registrer feilhandtering før operasjonen kan feile, hald tilkoplingstrinnet i feilrapporten, og send destinasjonsprotokollen først etter at forhandlinga har lukkast. Å fange feilen hindrar ei uhandtert hending; ho reparerer ikkje ei ugyldig utveksling.