Gumamit ng SOCKS agent sa HTTPS client ng Node
Ikabit ang socks-proxy-agent sa pangunahing HTTPS request ng Node at panatilihin ang pagkakaiba ng Node agent at fetch dispatcher.
Ang isang agent na may kakayahang SOCKS ay makakapagtatag ng koneksyon sa destinasyon para sa pangunahing HTTPS client ng Node. Kapag may socks-proxy-agent sa aplikasyon:
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);
Palitan ang halimbawang endpoint ng hindi awtentikadong kandidato mula sa listahan ng SOCKS5 proxy para sa pampublikong HTTPS request na ito. Inilalabas ng callback ang tugon pagkatapos i-print ang status; ubusin ang katawan doon kung kailangan ito ng aplikasyon. Gamitin muli ang agent para sa mga itinalagang operasyon nito, pagkatapos ay sirain ito kapag binawi ang patakarang iyon ng kliyente at tapos na ang trabaho nito.
Piliin kung saan niresolba ang pangalan ng destinasyon
Sa paghawak ng URL ng socks-proxy-agent, iniiwan ng socks5h ang resolusyon ng hostname ng destinasyon sa daan ng proxy; niresolba ito ng socks5 nang lokal. Mahalaga ito kapag ang pangalan ay available lamang sa network ng proxy.
Pinapanatili ng HTTPS URL ang pagkakakilanlan ng website. Nagsasagawa ang agent ng SOCKS negotiation bago simulan ng Node ang TLS patungo sa site na iyon.
Para sa serbisyong may username/password, ilagay ang mga kredensyal sa URL ng proxy gamit ang URI-component encoding para sa mga reserved na character. Itago ang buong URL mula sa mga log. Ang mga Authorization header ng destinasyon ay pag-aari ng account ng website.
Gumagana ang agent na ito sa pangunahing HTTP/HTTPS request API ng Node. Gumagamit ang fetch ng Node ng dispatcher interface, kaya i-configure nang hiwalay ang sinusuportahang SOCKS integration ng kliyenteng iyon.