Socket.IO in Node.js: usa un agente SOCKS per polling e WebSocket
Mantieni invariato l'URL del server Socket.IO e controlla le sostituzioni per trasporto se l'aggiornamento fallisce.
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'],
});Usa il servizio Socket.IO reale. L'agente Node negozia SOCKS; socks5h delega il DNS di destinazione a quel proxy. Prendi un endpoint corrispondente dalla lista di proxy SOCKS5 quando i test di servizi pubblici tramite intermediari pubblici sono consentiti.
Il polling può riuscire prima che un successivo aggiornamento WebSocket fallisca. Ispeziona entrambi i percorsi e qualsiasi transportOptions che sostituisca l'agente di primo livello.
L'esempio usa deliberatamente questi due trasporti. WebTransport impiega un'altra implementazione e il JavaScript incluso nel browser segue la configurazione del browser. Nemmeno un semplice endpoint WebSocket è un server Socket.IO.
Mantieni la logica esistente di eventi e riconnessione, poi disconnetti il client e rilascia il suo agente al termine delle connessioni.