import { io } from 'socket.io-client';
import { SocksProxyAgent } from 'socks-proxy-agent';

const agent = new SocksProxyAgent('socks5h://proxy.example:1080');
const socket = io('https://events.example', {
  agent,
  transports: ['polling', 'websocket'],
});

ใช้บริการ Socket.IO จริง Node agent เจรจา SOCKS; socks5h มอบ DNS ปลายทางให้พร็อกซีนั้น ใช้ปลายทางที่ตรงกันจากรายการพร็อกซี SOCKS5เมื่ออนุญาตให้ทดสอบบริการสาธารณะผ่านตัวกลางสาธารณะ

polling อาจสำเร็จก่อนที่การอัปเกรด WebSocket ในภายหลังจะล้มเหลว ตรวจสอบทั้งสองเส้นทางและ transportOptions ใด ๆ ที่แทนที่ agent ระดับบนสุด

ตัวอย่างใช้ทรานสปอร์ตสองแบบนี้โดยเจตนา WebTransport ใช้การใช้งานอื่น และ JavaScript ที่รวมมากับเบราว์เซอร์เป็นไปตามการกำหนดค่าของเบราว์เซอร์ ปลายทาง WebSocket ธรรมดาก็ไม่ใช่เซิร์ฟเวอร์ Socket.IO เช่นกัน

คงตรรกะเหตุการณ์และการเชื่อมต่อใหม่ที่มีอยู่ แล้วตัดการเชื่อมต่อไคลเอนต์และปล่อย agent ของมันเมื่อการเชื่อมต่อเสร็จสิ้น

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