אובייקט ה-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.

מאמרים קשורים