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

Upotrijebite stvarnu Socket.IO uslugu. Node agent pregovara SOCKS; socks5h predaje DNS odredišta tom proxyju. Uzmite odgovarajuću završnu točku iz popisa SOCKS5 proxyja kada su dopušteni testovi javnih usluga preko javnih posrednika.

Polling može uspjeti prije nego kasnija WebSocket nadogradnja ne uspije. Provjerite oba puta i sve transportOptions koji zamjenjuju agent na najvišoj razini.

Primjer namjerno rabi ova dva transporta. WebTransport rabi drugu implementaciju, a JavaScript ugrađen u preglednik slijedi konfiguraciju preglednika. Obična WebSocket završna točka također nije Socket.IO poslužitelj.

Zadržite postojeću logiku događaja i ponovnog povezivanja, zatim odspojite klijenta i oslobodite njegov agent nakon završetka veza.

Povezani članci