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

Use o serviço Socket.IO real. O agente Node negocia SOCKS; socks5h delega o DNS de destino a esse proxy. Pegue um endpoint correspondente na lista de proxies SOCKS5 quando testes de serviços públicos por intermediários públicos forem permitidos.

O polling pode ter êxito antes de uma atualização posterior para WebSocket falhar. Inspecione os dois caminhos e qualquer transportOptions que substitua o agente de nível superior.

O exemplo usa deliberadamente esses dois transportes. O WebTransport usa outra implementação, e o JavaScript empacotado com o navegador segue a configuração do navegador. Um endpoint WebSocket comum também não é um servidor Socket.IO.

Mantenha a lógica existente de eventos e reconexão, depois desconecte o cliente e libere seu agente quando as conexões terminarem.

Artigos relacionados