Node-এর HTTPS ক্লায়েন্টের সাথে SOCKS এজেন্ট ব্যবহার করুন
socks-proxy-agent কে Node-এর মূল HTTPS অনুরোধে যুক্ত করুন এবং Node এজেন্ট ও fetch dispatcher-এর মধ্যে পার্থক্য রক্ষা করুন।
SOCKS সমর্থিত এজেন্ট Node-এর মূল HTTPS ক্লায়েন্টের জন্য গন্তব্য সংযোগ স্থাপন করতে পারে। অ্যাপ্লিকেশনে socks-proxy-agent থাকলে:
const https = require('node:https');
const { SocksProxyAgent } = require('socks-proxy-agent');
const agent = new SocksProxyAgent('socks5h://proxy.example:1080');
const request = https.get('https://www.example.com/', {
agent,
signal: AbortSignal.timeout(15000),
}, (response) => {
console.log(response.statusCode);
response.on('error', console.error);
response.resume();
});
request.on('error', console.error);
এই পাবলিক HTTPS অনুরোধের জন্য উদাহরণের এন্ডপয়েন্টটি SOCKS5 প্রক্সি তালিকা থেকে একটি অননুমোদিত প্রার্থী দিয়ে প্রতিস্থাপন করুন। কলব্যাকটি স্ট্যাটাস প্রিন্ট করার পর প্রতিক্রিয়া নিষ্কাশন করে; অ্যাপ্লিকেশনের প্রয়োজন হলে সেখানেই বডি গ্রহণ করুন। এজেন্টটি তার নির্ধারিত কাজে পুনরায় ব্যবহার করুন, তারপর সেই ক্লায়েন্ট নীতি প্রত্যাহার হলে এবং কাজ শেষ হলে এটি ধ্বংস করুন।
গন্তব্যের নাম কোথায় সমাধান হবে তা বেছে নিন
socks-proxy-agent-এর URL পরিচালনায় socks5h গন্তব্য হোস্টনেম সমাধান প্রক্সি পথে ছেড়ে দেয়; socks5 স্থানীয়ভাবে সমাধান করে। নামটি কেবল প্রক্সির নেটওয়ার্কে উপলব্ধ হলে এটি গুরুত্বপূর্ণ।
HTTPS URL ওয়েবসাইটের পরিচয় ধরে রাখে। Node সেই সাইটে TLS শুরু করার আগে এজেন্ট SOCKS আলোচনা সম্পন্ন করে।
ব্যবহারকারীর নাম/পাসওয়ার্ড পরিষেবার জন্য, সংরক্ষিত অক্ষরের জন্য URI-কম্পোনেন্ট এনকোডিং ব্যবহার করে প্রক্সি URL-এ শংসাপত্র রাখুন। সম্পূর্ণ URL লগের বাইরে রাখুন। গন্তব্যের Authorization হেডার ওয়েবসাইটের অ্যাকাউন্টের।
এই এজেন্ট Node-এর মূল HTTP/HTTPS অনুরোধ API-এর সাথে কাজ করে। Node-এর fetch একটি dispatcher ইন্টারফেস ব্যবহার করে, তাই সেই ক্লায়েন্টের সমর্থিত SOCKS সংহতিটি আলাদাভাবে কনফিগার করুন।