Got selecciona agentes SOCKS mediante sus claves HTTP y HTTPS
Asigna un SocksProxyAgent a las entradas de agente de Got por protocolo de destino y mantén separada la ruta HTTP/2.
El objeto agent de Got se indexa por el protocolo de destino. Por eso, una conexión SOCKS para una URL HTTPS va bajo https, no bajo una clave nueva llamada socks.
Para una aplicación ESM existente que usa Got y socks-proxy-agent en la 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();
La lista de proxies SOCKS5 aporta candidatos para la URL de proxy sin cuenta del ejemplo. El mismo agente puede atender las entradas HTTP y HTTPS mostradas. Establece la conexión SOCKS y después la ruta HTTPS realiza el saludo TLS con el destino.
En este agente, socks5h deja la resolución del nombre de host de destino al proxy SOCKS. socks5 opta por la resolución local. El nombre de host del propio proxy sigue teniendo que ser accesible desde el proceso Node.
La ranura de agente HTTP/2 de Got espera otra interfaz. No copies este agente en agent.http2 ni des por hecho que ofrece compatibilidad con proxy HTTP/2.
Reutiliza el agente configurado para la carga de trabajo y destrúyelo cuando su propietario se apague. Ajusta las versiones de los paquetes al entorno Node de la aplicación; este ejemplo usa la exportación denominada SocksProxyAgent.