EPIPE në Node.js pas lidhjes me një proxy SOCKS
Interpretoni EPIPE-n e Node pas lidhjes me një pikë fundore SOCKS dhe kontrolloni nëse handshake-u i kërkuar përfundoi.
Ngjarja connect e socket-it të Node ju tregon se TCP arriti te proxy-i. Nuk thotë se proxy-i ka hapur një lidhje drejt destinacionit.
Një server SOCKS5 pret negociimin e metodës, çdo vërtetim të zgjedhur dhe një kërkesë destinacioni përpara trafikut të aplikacionit. Dërgimi i menjëhershëm i një kërkese HTTP mund ta bëjë serverin të mbyllë lidhjen. Një shkrim i mëvonshëm atëherë mund të prodhojë EPIPE.
EPIPE vetëm nuk provon mungesën e handshake-ut. Ai raporton një shkrim drejt një lidhjeje, pala tjetër e së cilës nuk e pranon më atë komunikim. Lexoni ngjarjet dhe përgjigjet e protokollit të mëparshme për të kuptuar pse pala tjetër e mbylli.
Përdorni një lidhës që zbaton shkëmbimin e plotë SOCKS. Për klientin bazë HTTPS të Node, një agjent që njeh SOCKS mund ta kryejë atë negociim përpara TLS-it të destinacionit. Nëse e zbatoni vetë shkëmbimin, grumbulloni të dhëna sipas gjatësive të fushave të protokollit. Nuk garantohet që një ngjarje data përmban një përgjigje të plotë, dhe adresa e lidhur e kthyer nuk duhet të përputhet me një varg të vetëm bajtesh të koduar fort.
Regjistroni trajtimin e gabimeve përpara se operacioni të mund të dështojë, mbani fazën e lidhjes në raportin e gabimit dhe dërgoni protokollin e destinacionit vetëm pasi negociimi të ketë sukses. Kapja e gabimit parandalon një ngjarje të patrajtuar; nuk rregullon një shkëmbim të pavlefshëm.