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 بر سر SOCKS مذاکره می‌کند؛ socks5h DNS مقصد را به آن پروکسی می‌سپارد. زمانی که آزمون سرویس‌های عمومی از طریق واسطه‌های عمومی مجاز است، نقطه پایانی متناظر را از فهرست پروکسی SOCKS5 بردارید.

polling ممکن است پیش از شکست ارتقای بعدی WebSocket موفق شود. هر دو مسیر و هر transportOptions را که عامل سطح بالا را بازنویسی می‌کند بررسی کنید.

نمونه عمداً از این دو انتقال استفاده می‌کند. WebTransport پیاده‌سازی دیگری دارد و جاوااسکریپتی که در مرورگر بسته‌بندی شده از پیکربندی مرورگر پیروی می‌کند. یک نقطه پایانی ساده WebSocket نیز سرور Socket.IO نیست.

منطق رویدادها و اتصال مجدد موجود را نگه دارید، سپس مشتری را قطع کنید و پس از پایان اتصال‌ها عامل آن را آزاد کنید.

مقالات مرتبط