เหตุการณ์ connect ของซ็อกเก็ต Node บอกคุณว่า TCP ไปถึงพร็อกซีแล้ว ไม่ได้บอกว่าพร็อกซีเปิดการเชื่อมต่อไปยังปลายทางแล้ว

เซิร์ฟเวอร์ SOCKS5 คาดหวังการเจรจาวิธี เลือกการยืนยันตัวตน และคำขอปลายทางก่อนทราฟฟิกของแอปพลิเคชัน การส่งคำขอ HTTP ทันทีอาจทำให้เซิร์ฟเวอร์ปิดการเชื่อมต่อ การเขียนในภายหลังจึงอาจทำให้เกิด EPIPE

EPIPE เพียงอย่างเดียวไม่ได้พิสูจน์ว่า handshake หายไป มันรายงานการเขียนไปยังการเชื่อมต่อที่อีกฝ่ายไม่ยอมรับการสื่อสารนั้นแล้ว อ่านเหตุการณ์และคำตอบของโปรโตคอลก่อนหน้าเพื่อดูว่าอีกฝ่ายปิดเพราะเหตุใด

ใช้ตัวเชื่อมต่อที่ใช้งานการแลกเปลี่ยน SOCKS อย่างครบถ้วน สำหรับไคลเอนต์ HTTPS หลักของ Node เอเจนต์ที่เข้าใจ SOCKS สามารถเจรจานั้นก่อน TLS ของปลายทางได้ หากคุณใช้งานการแลกเปลี่ยนเอง ให้สะสมข้อมูลตามความยาวฟิลด์ของโปรโตคอล ไม่มีการรับประกันว่าเหตุการณ์ data หนึ่งครั้งจะมีคำตอบที่สมบูรณ์หนึ่งรายการ และที่อยู่ bound ที่ส่งคืนไม่จำเป็นต้องตรงกับสตริงไบต์ที่ฮาร์ดโค้ดไว้เพียงชุดเดียว

ลงทะเบียนการจัดการข้อผิดพลาดก่อนที่การทำงานจะล้มเหลวได้ เก็บขั้นตอนการเชื่อมต่อไว้ในรายงานข้อผิดพลาด และส่งโปรโตคอลปลายทางหลังจากเจรจาสำเร็จเท่านั้น การดักจับข้อผิดพลาดป้องกันเหตุการณ์ที่ไม่ได้จัดการ แต่ไม่ได้ซ่อมการแลกเปลี่ยนที่ไม่ถูกต้อง

บทความที่เกี่ยวข้อง