Socket.IO i Node.js: använd en SOCKS-agent för polling och WebSocket
Behåll Socket.IO-serverns URL oförändrad och granska åsidosättningarna per transport om uppgraderingen misslyckas.
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'],
});Använd den faktiska Socket.IO-tjänsten. Node-agenten förhandlar SOCKS; socks5h överlåter målets DNS till den proxyn. Ta en matchande slutpunkt från SOCKS5-proxylistan när tester av offentliga tjänster via offentliga mellanhänder är tillåtna.
Polling kan lyckas innan en senare WebSocket-uppgradering misslyckas. Granska båda vägarna och alla transportOptions som åsidosätter agenten på översta nivån.
Exemplet använder medvetet dessa två transporter. WebTransport använder en annan implementering, och JavaScript som buntas med webbläsaren följer webbläsarens konfiguration. En vanlig WebSocket-slutpunkt är inte heller en Socket.IO-server.
Behåll den befintliga logiken för händelser och återanslutning, koppla sedan från klienten och släpp dess agent när anslutningarna är klara.