Socket.IO w Node.js: użyj agenta SOCKS do pollingu i WebSocket
Zachowaj niezmieniony URL serwera Socket.IO i sprawdź nadpisania dla poszczególnych transportów, jeśli aktualizacja się nie powiedzie.
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'],
});Użyj rzeczywistej usługi Socket.IO. Agent Node negocjuje SOCKS; socks5h przekazuje DNS celu temu proxy. Wybierz pasujący punkt końcowy z listy proxy SOCKS5, gdy dozwolone są testy usług publicznych przez publicznych pośredników.
Polling może się udać, zanim późniejsza aktualizacja do WebSocket zawiedzie. Sprawdź obie ścieżki i wszelkie transportOptions, które nadpisują agenta najwyższego poziomu.
Przykład celowo używa tych dwóch transportów. WebTransport korzysta z innej implementacji, a JavaScript dołączony do przeglądarki stosuje się do konfiguracji przeglądarki. Zwykły punkt końcowy WebSocket również nie jest serwerem Socket.IO.
Zachowaj istniejącą logikę zdarzeń i ponownego łączenia, następnie rozłącz klienta i zwolnij jego agenta po zakończeniu połączeń.