O obxecto agent de Got indexa polo protocolo de destino. Por iso, unha conexión SOCKS para un URL HTTPS vai baixo https, non baixo unha clave nova chamada socks.

Para unha aplicación ESM existente que usa Got e socks-proxy-agent na ruta HTTP/1:

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();

A lista de proxies SOCKS5 achega candidatos para o URL de proxy sen conta do exemplo. O mesmo axente pode atender as entradas HTTP e HTTPS mostradas. Establece a conexión SOCKS e despois a ruta HTTPS realiza o salto de mans TLS co destino.

Neste axente, socks5h deixa a resolución do nome de host de destino ao proxy SOCKS. socks5 opta pola resolución local. O nome de host do propio proxy segue a ter que ser accesible desde o proceso Node.

A ranura de axente HTTP/2 de Got espera outra interface. Non copies este axente en agent.http2 nin deas por feito que ofrece compatibilidade con proxy HTTP/2.

Reutiliza o axente configurado para a carga de traballo e destrúeo cando o seu propietario se apague. Axusta as versións dos paquetes á contorna Node da aplicación; este exemplo usa a exportación denominada SocksProxyAgent.

Artigos relacionados