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 perkhidmatan Socket.IO yang sebenar. Ejen Node berunding SOCKS; socks5h menyerahkan DNS destinasi kepada proksi itu. Ambil titik hujung yang sepadan daripada senarai proksi SOCKS5 apabila ujian perkhidmatan awam melalui perantara awam dibenarkan.

Polling boleh berjaya sebelum peningkatan WebSocket kemudiannya gagal. Periksa kedua-dua laluan dan mana-mana transportOptions yang mengatasi ejen peringkat atas.

Contoh ini sengaja menggunakan kedua-dua pengangkutan ini. WebTransport menggunakan pelaksanaan lain, dan JavaScript yang dibundel dengan pelayar mengikut konfigurasi pelayar. Titik hujung WebSocket biasa juga bukan pelayan Socket.IO.

Kekalkan logik peristiwa dan penyambungan semula yang sedia ada, kemudian putuskan sambungan klien dan lepaskan ejennya selepas sambungan selesai.

Artikel berkaitan