แพ็กเกจ ws ของ Node รับเอเจนต์ HTTP ในตัวเลือกการเชื่อมต่อ สำหรับพร็อกซีส่งต่อ ชิ้นส่วนโมดูล ES สามารถใช้ HttpsProxyAgent ได้:

import WebSocket from 'ws';
import { HttpsProxyAgent } from 'https-proxy-agent';

const agent = new HttpsProxyAgent('http://proxy.example.net:8080');
const socket = new WebSocket('wss://socket.example.net/events', {
  agent,
});

socket.on('error', error => {
  console.error(error.message);
});

การนี้ถือว่าทั้งสองแพ็กเกจเป็นส่วนหนึ่งของแอปพลิเคชันแล้ว URL ของ WebSocket เลือกบริการ ส่วน URL ของเอเจนต์เลือกพร็อกซี ที่อยู่ HTTP จากรายการพร็อกซี HTTP สามารถเติม URL ของเอเจนต์สำหรับการทดสอบ WSS สาธารณะที่ได้รับอนุญาตโดยไม่ต้องมีข้อมูลรับรองพร็อกซี ตรวจสอบการเข้าถึงปลายทางจริงของบริการ

HttpsProxyAgent สร้างอุโมงค์ HTTP CONNECT และส่งมอบการขนส่งที่เชื่อมต่อแล้วให้ไคลเอนต์ รองรับทั้งการเชื่อมต่อ WebSocket และคำขอ HTTPS แอปพลิเคชันจึงไม่ต้องสร้างการแลกเปลี่ยน CONNECT เอง

ดำเนินการจัดการ open, message และ close ตามปกติของแอปพลิเคชันต่อไป เหตุการณ์ open บ่งชี้ว่าแฮนด์เชก WebSocket เสร็จสมบูรณ์บนเส้นทางที่เลือก การสร้างออบเจ็กต์ JavaScript อย่างเดียวไม่ได้ทำให้เสร็จ

บทความที่เกี่ยวข้อง