დასრულებული CONNECT სოკეტის გადაცემა ssh2-sftp-client-ისთვის
შეინახეთ SSH მისალმება, რომელიც პროქსის სათაურების შემდეგ უკვე ბუფერშია, შემდეგ გამოიყენეთ sock დანიშნულების ჩვეულებრივი SSH პარამეტრებით.
import SftpClient from 'ssh2-sftp-client';
const client = new SftpClient();
await client.connect({
...sshOptions,
sock: tunnelSocket,
});არსებული დანიშნულების ჰოსტი, პორტი, ანგარიში და ჰოსტის გასაღების პოლიტიკა მიუთითეთ sshOptions-ში. სოკეტი უკვე უნდა მიდიოდეს მიღებული CONNECT გვირაბით ამ დანიშნულებამდე და არა მხოლოდ პროქსის მსმენელამდე.
ნაკადის გადაცემამდე შეამოწმეთ დამხმარე: უარყავით 407 ან სხვა წარუმატებელი პასუხები, შეინარჩუნეთ კონფიგურაციის ვადები და დახურეთ უარყოფილი სოკეტები. Node-ის HTTP connect მოვლენა შეიცავს სათაურების შემდეგ უკვე წაკითხულ head ბაიტებს; შეინახეთ არაცარიელი ბუფერი ნაკადის შესაბამისი გადაცემით, მაგალითად socket.unshift(head). მასში შეიძლება იყოს SSH მისალმება.
სოკეტი დაუყოვნებლივ გადაეცით, შემდეგ დახურეთ დასრულებული SFTP სამუშაო await client.end()-ით. სხვა ადგილას არსებული HTTP Agent ამ SSH ტრანსპორტს არ ქმნის, და CONNECT ანგარიში SSH ანგარიშისგან ცალკეა.