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 використовує іншу реалізацію, а JavaScript, вбудований у браузер, підкоряється налаштуванням браузера. Звичайна кінцева точка WebSocket теж не є сервером Socket.IO.

Збережіть наявну логіку подій і повторного підключення, потім від'єднайте клієнт і звільніть його агент після завершення з'єднань.

Схожі статті