EPIPE Node.js selepas menyambung ke proksi SOCKS
Tafsirkan EPIPE Node selepas menyambung ke titik akhir SOCKS dan semak sama ada handshake yang diperlukan telah selesai.
Peristiwa connect socket Node memberitahu anda bahawa TCP telah sampai ke proksi. Ia tidak menyatakan bahawa proksi telah membuka sambungan ke destinasi.
Pelayan SOCKS5 menjangkakan rundingan kaedah, pengesahan yang dipilih, dan permintaan destinasi sebelum trafik aplikasi. Menghantar permintaan HTTP serta-merta boleh menyebabkan pelayan menutup sambungan. Penulisan kemudian boleh menghasilkan EPIPE.
EPIPE sahaja tidak membuktikan handshake yang hilang. Ia melaporkan penulisan ke sambungan yang pasangannya tidak lagi menerima komunikasi itu. Baca peristiwa dan balasan protokol terdahulu untuk mengetahui mengapa pasangan itu menutup.
Gunakan penyambung yang melaksanakan pertukaran SOCKS penuh. Untuk klien HTTPS teras Node, ejen yang memahami SOCKS boleh melakukan rundingan itu sebelum TLS destinasi. Jika anda melaksanakan pertukaran itu sendiri, kumpulkan data mengikut panjang medan protokol. Satu peristiwa data tidak dijamin mengandungi satu balasan lengkap, dan alamat terikat yang dikembalikan tidak perlu sepadan dengan satu rentetan bait yang dikodkan keras.
Daftarkan pengendalian ralat sebelum operasi boleh gagal, kekalkan peringkat sambungan dalam laporan ralat, dan hantar protokol destinasi hanya selepas rundingan berjaya. Menangkap ralat menghalang peristiwa yang tidak dikendalikan; ia tidak membaiki pertukaran yang tidak sah.