ສົ່ງ CONNECT socket ທີ່ສຳເລັດແລ້ວໃຫ້ ssh2-sftp-client
ຮັກສາຄຳທັກ SSH ທີ່ buffer ໄວ້ແລ້ວຫຼັງຫົວຂໍ້ proxy, ແລ້ວໃຊ້ sock ກັບຕົວເລືອກ SSH ປົກກະຕິຂອງປາຍທາງ.
import SftpClient from 'ssh2-sftp-client';
const client = new SftpClient();
await client.connect({
...sshOptions,
sock: tunnelSocket,
});ໃຫ້ host, port, ບັນຊີ ແລະ ນະໂຍບາຍ host-key ຂອງປາຍທາງທີ່ມີຢູ່ໃນ sshOptions. socket ຕ້ອງຜ່ານ ອຸໂມງ CONNECT ທີ່ຮັບແລ້ວ ໄປຫາປາຍທາງນັ້ນ, ບໍ່ແມ່ນພຽງແຕ່ໄປຫາຕົວຮັບຟັງ proxy.
ກວດສອບ helper ກ່ອນສົ່ງ stream: ປະຕິເສດ 407 ຫຼື ຄຳຕອບທີ່ລົ້ມເຫຼວອື່ນໆ, ຮັກສາເວລາກຳນົດການຕັ້ງຄ່າ ແລະ ປິດ socket ທີ່ຖືກປະຕິເສດ. ເຫດການ connect ຂອງ HTTP ໃນ Node ມີ bytes head ທີ່ອ່ານແລ້ວຫຼັງຫົວຂໍ້; ຮັກສາ buffer ທີ່ບໍ່ຫວ່າງເປົ່າດ້ວຍການສົ່ງ stream ທີ່ເໝາະສົມ, ຕົວຢ່າງ socket.unshift(head). ມັນອາດມີຄຳທັກ SSH.
ສົ່ງ socket ທັນທີ, ແລ້ວປິດວຽກ SFTP ທີ່ສຳເລັດດ້ວຍ await client.end(). HTTP Agent ຢູ່ບ່ອນອື່ນບໍ່ສ້າງການຂົນສົ່ງ SSH ນີ້, ແລະ ບັນຊີ CONNECT ແຍກຈາກບັນຊີ SSH.