Node socketov connect događaj govori da je TCP stigao do proxyja. Ne govori da je proxy otvorio vezu prema odredištu.

SOCKS5 server očekuje pregovor metode, eventualnu odabranu autentifikaciju i zahtjev za odredištem prije prometa aplikacije. Ako odmah pošaljete HTTP zahtjev, server može zatvoriti vezu. Kasnije pisanje tada može proizvesti EPIPE.

EPIPE sam po sebi ne dokazuje da handshake nedostaje. On prijavljuje pisanje u vezu čija druga strana više ne prihvaća tu komunikaciju. Pročitajte ranije događaje i odgovore protokola da biste utvrdili zašto je druga strana zatvorila vezu.

Koristite konektor koji implementira kompletnu SOCKS razmjenu. Za Nodeov osnovni HTTPS klijent, SOCKS-osviješteni agent može obaviti taj pregovor prije TLS-a prema odredištu. Ako sami implementirate razmjenu, akumulirajte podatke prema dužinama polja protokola. Nije zagarantovano da jedan data događaj sadrži jedan potpuni odgovor, a vraćena vezana adresa ne mora odgovarati jednom tvrdo kodiranom nizu bajtova.

Registrirajte rukovanje greškama prije nego operacija može pasti, zadržite fazu veze u izvještaju o grešci i pošaljite protokol odredišta tek nakon uspješnog pregovora. Hvatanje greške sprječava neobrađeni događaj; ono ne popravlja neispravnu razmjenu.

Povezani članci