connect догађај Node сокета говори да је TCP стигао до проксија. Не говори да је прокси отворио везу према одредишту.

SOCKS5 сервер очекује преговор методе, евентуалну изабрану аутентификацију и захтев за одредиштем пре саобраћаја апликације. Ако одмах пошаљете HTTP захтев, сервер може затворити везу. Касније писање тада може да произведе EPIPE.

EPIPE сам по себи не доказује да handshake недостаје. Он пријављује писање у везу чија друга страна више не прихвата ту комуникацију. Прочитајте раније догађаје и одговоре протокола да бисте утврдили зашто је друга страна затворила везу.

Користите конектор који имплементира комплетну SOCKS размену. За Node-ов основни HTTPS клијент, агент који разуме SOCKS може да обави тај преговор пре TLS-а одредишта. Ако сами имплементирате размену, акумулирајте податке према дужинама поља протокола. Није загарантовано да један data догађај садржи један потпун одговор, а враћена везана адреса не мора да одговара једном чврсто кодираном низу бајтова.

Региструјте руковање грешкама пре него што операција може да падне, задржите фазу везе у извештају о грешци и пошаљите протокол одредишта тек након успешног преговора. Хватање грешке спречава необрађени догађај; оно не поправља неисправну размену.

Повезани чланци