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.

Articoli correlati