Socket.IO in Node.js: gebruik een SOCKS-agent voor polling en WebSocket
Houd de URL van de Socket.IO-server ongewijzigd en controleer de overschrijvingen per transport als de upgrade mislukt.
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'],
});Gebruik de echte Socket.IO-service. De Node-agent onderhandelt SOCKS; socks5h draagt de DNS van de bestemming over aan die proxy. Neem een passend eindpunt uit de SOCKS5-proxylijst wanneer tests van openbare diensten via openbare tussenpersonen zijn toegestaan.
Polling kan slagen voordat een latere WebSocket-upgrade mislukt. Controleer beide paden en elke transportOptions die de agent op het hoogste niveau overschrijft.
Het voorbeeld gebruikt bewust deze twee transporten. WebTransport gebruikt een andere implementatie, en JavaScript dat met de browser wordt meegeleverd, volgt de browserconfiguratie. Een gewoon WebSocket-eindpunt is ook geen Socket.IO-server.
Behoud de bestaande gebeurtenis- en herverbindingslogica, verbreek daarna de verbinding met de client en geef de agent vrij zodra de verbindingen klaar zijn.