EPIPE di Node.js setelah terhubung ke proxy SOCKS
Tafsirkan EPIPE Node setelah terhubung ke endpoint SOCKS dan periksa apakah handshake yang diperlukan telah selesai.
Peristiwa connect pada socket Node memberi tahu Anda bahwa TCP telah mencapai proxy. Peristiwa itu tidak menyatakan bahwa proxy telah membuka koneksi ke tujuan.
Server SOCKS5 mengharapkan negosiasi metode, autentikasi apa pun yang dipilih, dan permintaan tujuan sebelum lalu lintas aplikasi. Mengirim permintaan HTTP segera dapat membuat server menutup koneksi. Penulisan berikutnya kemudian dapat menghasilkan EPIPE.
EPIPE saja tidak membuktikan handshake yang hilang. EPIPE melaporkan penulisan ke koneksi yang pasangannya tidak lagi menerima komunikasi itu. Baca peristiwa dan balasan protokol sebelumnya untuk mengetahui mengapa pasangan tersebut menutup koneksi.
Gunakan konektor yang mengimplementasikan pertukaran SOCKS lengkap. Untuk klien HTTPS inti Node, agen yang memahami SOCKS dapat melakukan negosiasi itu sebelum TLS tujuan. Jika Anda mengimplementasikan pertukaran sendiri, kumpulkan data sesuai panjang bidang protokol. Satu peristiwa data tidak dijamin berisi satu balasan lengkap, dan alamat terikat yang dikembalikan tidak harus cocok dengan satu string byte yang di-hardcode.
Daftarkan penanganan galat sebelum operasi dapat gagal, pertahankan tahap koneksi dalam laporan galat, dan kirim protokol tujuan hanya setelah negosiasi berhasil. Menangkap galat mencegah peristiwa yang tidak tertangani; itu tidak memperbaiki pertukaran yang tidak valid.