ပြီးစီးသော CONNECT socket ကို ssh2-sftp-client သို့ ပေးအပ်ပါ
proxy header များနောက် buffer တွင်ရှိပြီးသား SSH နှုတ်ဆက်စကားကို ထိန်းသိမ်းပြီး 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 tunnel မှတစ်ဆင့် ထို ဦးတည်ရာသို့ ရောက်ရမည်၊ proxy listener သို့သာ မဟုတ်ပါ။
stream မပေးအပ်မီ helper ကို စစ်ဆေးပါ- 407 သို့မဟုတ် အခြား မအောင်မြင်သော တုံ့ပြန်မှုများကို ပယ်ပါ၊ setup သတ်မှတ်ချိန်များကို ထိန်းထားပြီး ပယ်ချထားသော socket များကို ပိတ်ပါ။ Node ၏ HTTP connect ဖြစ်ရပ်တွင် header များနောက် ဖတ်ပြီးသား head byte များ ပါဝင်သည်။ သင့်လျော်သော stream လွှဲပြောင်းမှုဖြင့် ဗလာမဟုတ်သော buffer ကို ထိန်းသိမ်းပါ၊ ဥပမာ socket.unshift(head)။ ၎င်းတွင် SSH နှုတ်ဆက်စကား ပါနိုင်သည်။
socket ကို ချက်ချင်း ပေးအပ်ပြီး ပြီးစီးသော SFTP အလုပ်ကို await client.end() ဖြင့် ပိတ်ပါ။ အခြားနေရာရှိ HTTP Agent သည် ဤ SSH သယ်ယူပို့ဆောင်မှုကို မဖန်တီးပါ၊ CONNECT အကောင့်သည် SSH အကောင့်နှင့် သီးခြားဖြစ်သည်။