Got kiest SOCKS-agenten via zijn HTTP- en HTTPS-sleutels
Wijs een SocksProxyAgent toe aan de agentvermeldingen van Got per bestemmingsprotocol en houd het HTTP/2-pad apart.
Het agent-object van Got is gesleuteld op het bestemmingsprotocol. Een SOCKS-verbinding voor een HTTPS-URL hoort daarom onder https, niet onder een nieuwe sleutel met de naam socks.
Voor een bestaande ESM-applicatie die Got en socks-proxy-agent op het HTTP/1-pad gebruikt:
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();
De SOCKS5-proxylijst levert kandidaten voor de accountloze proxy-URL uit het voorbeeld. Dezelfde agent kan de getoonde HTTP- en HTTPS-vermeldingen afhandelen. Hij brengt de SOCKS-verbinding tot stand, waarna het HTTPS-pad zijn TLS-handshake met de bestemming uitvoert.
In deze agent laat socks5h het omzetten van de bestemmingshostnaam aan de SOCKS-proxy over. socks5 kiest in plaats daarvan lokale omzetting. De hostnaam van de proxy zelf moet nog steeds bereikbaar zijn vanuit het Node-proces.
De HTTP/2-agentsleuf van Got verwacht een andere interface. Kopieer deze agent niet naar agent.http2 en ga er niet van uit dat hij HTTP/2-proxyondersteuning biedt.
Hergebruik de geconfigureerde agent voor de werklast en vernietig hem wanneer de eigenaar ervan stopt. Stem pakketversies af op de Node-runtime van de applicatie; dit voorbeeld gebruikt de benoemde SocksProxyAgent-export.