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'],
});

Použijte skutečnou službu Socket.IO. Agent Node vyjednává SOCKS; socks5h předává DNS cíle tomuto proxy. Vezměte odpovídající koncový bod ze seznamu proxy SOCKS5, pokud jsou povoleny testy veřejných služeb přes veřejné zprostředkovatele.

Polling může uspět dříve, než pozdější upgrade na WebSocket selže. Prověřte obě cesty i všechna transportOptions, která přepisují agenta nejvyšší úrovně.

Příklad záměrně používá tyto dva transporty. WebTransport používá jinou implementaci a JavaScript zabalený do prohlížeče se řídí konfigurací prohlížeče. Ani běžný koncový bod WebSocket není server Socket.IO.

Zachovejte stávající logiku událostí a opětovného připojení, poté odpojte klienta a po skončení spojení uvolněte jeho agenta.

Související články