Node.js EPIPE SOCKS-välityspalvelimeen yhdistämisen jälkeen
Tulkitse Noden EPIPE SOCKS-päätepisteeseen yhdistämisen jälkeen ja tarkista, suoritettiinko vaadittu kättely loppuun.
Noden socketin connect-tapahtuma kertoo, että TCP saavutti välityspalvelimen. Se ei kerro, että välityspalvelin olisi avannut yhteyden kohteeseen.
SOCKS5-palvelin odottaa menetelmäneuvottelua, mahdollista valittua todennusta ja kohdepyyntöä ennen sovelluksen liikennettä. HTTP-pyynnön lähettäminen heti voi saada palvelimen sulkemaan yhteyden. Myöhempi kirjoitus voi silloin tuottaa EPIPE.
EPIPE yksinään ei todista, että kättely puuttuu. Se ilmoittaa kirjoituksesta yhteyteen, jonka vastapuoli ei enää hyväksy tätä viestintää. Lue aiemmat tapahtumat ja protokollan vastaukset selvittääksesi, miksi vastapuoli sulki yhteyden.
Käytä liitintä, joka toteuttaa täyden SOCKS-vaihdon. Noden ydin-HTTPS-asiakkaalle SOCKS-tietoinen agentti voi suorittaa tämän neuvottelun ennen kohteen TLS:ää. Jos toteutat vaihdon itse, kerää data protokollan kenttäpituuksien mukaan. Yksi data-tapahtuma ei välttämättä sisällä yhtä täydellistä vastausta, eikä palautetun sidotun osoitteen tarvitse vastata yhtä kovakoodattua tavujonoa.
Rekisteröi virheenkäsittely ennen kuin toiminto voi epäonnistua, säilytä yhteyden vaihe virheraportissa ja lähetä kohdeprotokolla vasta onnistuneen neuvottelun jälkeen. Virheen sieppaaminen estää käsittelemättömän tapahtuman; se ei korjaa virheellistä vaihtoa.