Got בוחר סוכני SOCKS דרך מפתחות ה-HTTP וה-HTTPS שלו
הקצו SocksProxyAgent לערכי הסוכן של Got לפי פרוטוקול היעד, ושמרו על נתיב HTTP/2 בנפרד.
אובייקט ה-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.