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.

Gerelateerde artikelen