Socket.IO in Node.js: SOCKS-Agent für Polling und WebSocket
Die Socket.IO-Server-URL bleibt unverändert; prüfen Sie die Overrides je Transport, wenn das Upgrade scheitert.
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'],
});Nutzen Sie den echten Socket.IO-Dienst. Der Node-Agent handelt SOCKS aus; socks5h übergibt die Ziel-DNS an diesen Proxy. Verwenden Sie einen passenden Endpunkt aus der SOCKS5-Proxy-Liste, wenn Tests gegen öffentliche Dienste über öffentliche Vermittler erlaubt sind.
Polling kann gelingen, bevor ein späteres WebSocket-Upgrade scheitert. Prüfen Sie beide Pfade und alle transportOptions, die den Agent auf oberster Ebene überschreiben.
Das Beispiel nutzt bewusst diese beiden Transporte. WebTransport verwendet eine andere Implementierung, und im Browser gebündeltes JavaScript folgt der Browser-Konfiguration. Ein reiner WebSocket-Endpunkt ist ebenfalls kein Socket.IO-Server.
Behalten Sie die vorhandene Ereignis- und Reconnect-Logik bei, trennen Sie danach den Client und geben Sie seinen Agent frei, sobald die Verbindungen beendet sind.