Sự kiện connect của socket Node cho bạn biết TCP đã tới proxy. Nó không nói rằng proxy đã mở kết nối tới đích.

Máy chủ SOCKS5 chờ thương lượng phương thức, xác thực nếu được chọn và yêu cầu đích trước lưu lượng của ứng dụng. Gửi yêu cầu HTTP ngay có thể khiến máy chủ đóng kết nối. Lần ghi sau đó có thể sinh ra EPIPE.

Chỉ EPIPE không chứng minh thiếu handshake. Nó báo cáo một lần ghi lên kết nối mà phía bên kia không còn chấp nhận giao tiếp đó. Hãy đọc các sự kiện và phản hồi giao thức trước đó để biết vì sao phía bên kia đóng kết nối.

Hãy dùng trình kết nối triển khai đầy đủ trao đổi SOCKS. Với ứng dụng khách HTTPS lõi của Node, agent hiểu SOCKS có thể thực hiện thương lượng đó trước TLS của đích. Nếu tự triển khai trao đổi, hãy tích lũy dữ liệu theo độ dài trường của giao thức. Không có gì bảo đảm một sự kiện data chứa một phản hồi trọn vẹn, và địa chỉ ràng buộc được trả về không nhất thiết phải khớp với một chuỗi byte được mã hóa cứng.

Đăng ký xử lý lỗi trước khi thao tác có thể thất bại, giữ giai đoạn kết nối trong báo cáo lỗi và chỉ gửi giao thức đích sau khi thương lượng thành công. Bắt lỗi ngăn một sự kiện không được xử lý; nó không sửa một trao đổi không hợp lệ.

Bài viết liên quan