Got vælger SOCKS-agenter via sine HTTP- og HTTPS-nøgler
Tildel en SocksProxyAgent til Gots agentposter efter destinationsprotokol, og hold HTTP/2-stien adskilt.
Gots agent-objekt er nøglet efter destinationsprotokollen. En SOCKS-forbindelse til en HTTPS-URL hører derfor under https, ikke under en ny nøgle ved navn socks.
Til en eksisterende ESM-applikation, der bruger Got og socks-proxy-agent på HTTP/1-stien:
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-proxylisten leverer kandidater til eksemplets proxy-URL uden konto. Den samme agent kan håndtere de viste HTTP- og HTTPS-poster. Den etablerer SOCKS-forbindelsen, hvorefter HTTPS-stien udfører sit TLS-håndtryk med destinationen.
I denne agent overlader socks5h opløsningen af destinationsværtsnavnet til SOCKS-proxyen. socks5 vælger i stedet lokal opløsning. Selve proxyens værtsnavn skal stadig kunne nås fra Node-processen.
Gots HTTP/2-agentplads forventer en anden grænseflade. Kopiér ikke denne agent til agent.http2 og gå ikke ud fra, at den giver HTTP/2-proxystøtte.
Genbrug den konfigurerede agent til arbejdsbyrden, og ødelæg den, når dens ejer lukker ned. Afstem pakkeversioner med applikationens Node-runtime; dette eksempel bruger det navngivne SocksProxyAgent-eksport.