Socket.IO di Node.js: gunakan agen SOCKS untuk polling dan WebSocket
Pertahankan URL server Socket.IO apa adanya dan periksa penimpaan per-transport jika upgrade gagal.
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'],
});Gunakan layanan Socket.IO yang sebenarnya. Agen Node menegosiasikan SOCKS; socks5h mendelegasikan DNS tujuan ke proxy tersebut. Ambil endpoint yang cocok dari daftar proxy SOCKS5 ketika pengujian layanan publik melalui perantara publik diizinkan.
Polling bisa berhasil sebelum upgrade WebSocket berikutnya gagal. Periksa kedua jalur dan transportOptions apa pun yang menimpa agen tingkat atas.
Contoh ini sengaja memakai kedua transport tersebut. WebTransport menggunakan implementasi lain, dan JavaScript yang dibundel bersama browser mengikuti konfigurasi browser. Endpoint WebSocket biasa juga bukan server Socket.IO.
Pertahankan logika peristiwa dan penyambungan ulang yang ada, lalu putuskan klien dan lepaskan agennya setelah koneksi selesai.