Got väljer SOCKS-agenter via sina HTTP- och HTTPS-nycklar
Tilldela en SocksProxyAgent till Gots agentposter per målprotokoll och håll HTTP/2-vägen åtskild.
Gots agent-objekt är nycklat efter målprotokollet. En SOCKS-anslutning för en HTTPS-URL hör därför under https, inte under en ny nyckel som heter socks.
För en befintlig ESM-applikation som använder Got och socks-proxy-agent på HTTP/1-vägen:
import got from 'got';
import {SocksProxyAgent} from 'socks-proxy-agent';
const agent = new SocksProxyAgent('socks5h://proxy.example:1080');
const body = await got('https://www.example.org/', {
http2: false,
agent: {
http: agent,
https: agent,
},
timeout: {request: 20000},
}).text();
SOCKS5-proxylistan ger kandidater till exemplets proxy-URL utan konto. Samma agent kan hantera de visade HTTP- och HTTPS-posterna. Den upprättar SOCKS-anslutningen, därefter utför HTTPS-vägen sitt TLS-handskakning med målet.
I den här agenten lämnar socks5h uppslagningen av målvärdens värdnamn till SOCKS-proxyn. socks5 väljer i stället lokal uppslagning. Själva proxyns värdnamn måste fortfarande vara nåbart från Node-processen.
Gots HTTP/2-agentplats förväntar sig ett annat gränssnitt. Kopiera inte den här agenten till agent.http2 och utgå inte från att den ger HTTP/2-proxystöd.
Återanvänd den konfigurerade agenten för arbetsbelastningen och förstör den när ägaren stängs av. Anpassa paketversionerna till applikationens Node-runtime; det här exemplet använder den namngivna SocksProxyAgent-exporten.