Socket.IO u Node.js: koristite SOCKS agent za polling i WebSocket
Zadržite URL Socket.IO servera nepromijenjenim i provjerite zamjene po transportu ako nadogradnja ne uspije.
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'],
});Koristite stvarnu Socket.IO uslugu. Node agent pregovara SOCKS; socks5h predaje DNS odredišta tom proxyju. Uzmite odgovarajuću krajnju točku iz liste SOCKS5 proxyja kada su dopušteni testovi javnih usluga preko javnih posrednika.
Polling može uspjeti prije nego što kasnija WebSocket nadogradnja ne uspije. Provjerite oba puta i sve transportOptions koji zamjenjuju agent na najvišoj razini.
Primjer namjerno koristi ova dva transporta. WebTransport koristi drugu implementaciju, a JavaScript ugrađen u preglednik slijedi konfiguraciju preglednika. Obična WebSocket krajnja točka također nije Socket.IO server.
Zadržite postojeću logiku događaja i ponovnog povezivanja, zatim odspojite klijenta i oslobodite njegov agent nakon završetka veza.