Обектът agent на Got се индексира по протокола на дестинацията. Затова SOCKS връзка за HTTPS адрес принадлежи под https, а не под нов ключ с име socks.

За съществуващо ESM приложение, което използва Got и socks-proxy-agent по пътя 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();

Списъкът със SOCKS5 проксита дава кандидати за прокси адреса без акаунт от примера. Същият агент може да обслужва показаните записи HTTP и HTTPS. Той установява SOCKS връзката, след което пътят HTTPS извършва TLS ръкостискането с дестинацията.

В този агент socks5h оставя разрешаването на името на хоста на дестинацията на SOCKS проксито. socks5 вместо това избира локално разрешаване. Собственото име на хоста на проксито все още трябва да е достъпно от процеса Node.

Слотът за HTTP/2 агент на Got очаква друг интерфейс. Не копирайте този агент в agent.http2 и не предполагайте, че осигурява поддръжка на HTTP/2 прокси.

Използвайте отново конфигурирания агент за натоварването и го унищожавайте, когато собственикът му се изключи. Съобразявайте версиите на пакетите с Node средата на приложението; този пример използва именувания експорт SocksProxyAgent.

Подобни статии