Socket.IO em Node.js: use um agente SOCKS para polling e WebSocket
Mantenha o URL do servidor Socket.IO intacto e inspecione as substituições por transporte se a atualização falhar.
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.