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

Brug den faktiske Socket.IO-tjeneste. Node-agenten forhandler SOCKS; socks5h overdrager destinationens DNS til den proxy. Brug et passende endepunkt fra SOCKS5-proxylisten, når tests af offentlige tjenester via offentlige mellemled er tilladt.

Polling kan lykkes, før en senere WebSocket-opgradering fejler. Undersøg begge veje og eventuelle transportOptions, der tilsidesætter agenten på øverste niveau.

Eksemplet bruger bevidst disse to transportlag. WebTransport bruger en anden implementering, og JavaScript, der er bundtet med browseren, følger browserens konfiguration. Et almindeligt WebSocket-endepunkt er heller ikke en Socket.IO-server.

Behold den eksisterende hændelses- og genopkoblingslogik, og afbryd derefter klienten og frigiv dens agent, når forbindelserne er færdige.

Relaterede artikler