Got เลือกเอเจนต์ SOCKS ผ่านคีย์ HTTP และ HTTPS ของมัน
กำหนด SocksProxyAgent ให้รายการเอเจนต์ของ Got ตามโปรโตคอลปลายทาง และแยกเส้นทาง HTTP/2 ไว้ต่างหาก
ออบเจกต์ agent ของ Got ถูกกำหนดคีย์ตามโปรโตคอลปลายทาง ดังนั้นการเชื่อมต่อ SOCKS สำหรับ URL แบบ 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 ให้ผู้สมัครสำหรับ URL พร็อกซีแบบไม่มีบัญชีในตัวอย่าง เอเจนต์เดียวกันจัดการได้ทั้งรายการ HTTP และ HTTPS ที่แสดงไว้ มันสร้างการเชื่อมต่อ SOCKS แล้วเส้นทาง HTTPS จะทำแฮนด์เชก TLS กับปลายทาง
ในเอเจนต์นี้ socks5h ปล่อยให้พร็อกซี SOCKS แก้ชื่อโฮสต์ปลายทาง ส่วน socks5 เลือกแก้ไขในเครื่องแทน ชื่อโฮสต์ของพร็อกซีเองยังต้องเข้าถึงได้จากโปรเซส Node
ช่องเอเจนต์ HTTP/2 ของ Got คาดหวังอินเทอร์เฟซที่ต่างออกไป อย่าคัดลอกเอเจนต์นี้ไปยัง agent.http2 แล้วคิดว่ามันรองรับพร็อกซี HTTP/2
ใช้เอเจนต์ที่กำหนดค่าไว้ซ้ำสำหรับภาระงาน และทำลายเมื่อเจ้าของปิดตัวลง ปรับเวอร์ชันแพ็กเกจให้ตรงกับรันไทม์ Node ของแอป ตัวอย่างนี้ใช้เอ็กซ์พอร์ต SocksProxyAgent ที่มีชื่อ