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'],
});

Gamitin ang tunay na serbisyo ng Socket.IO. Nakikipagnegosasyon ang Node agent sa SOCKS; ipinapasa ng socks5h ang DNS ng destinasyon sa proxy na iyon. Kumuha ng tugmang endpoint mula sa listahan ng proxy na SOCKS5 kapag pinapayagan ang pagsubok sa mga pampublikong serbisyo sa pamamagitan ng pampublikong tagapamagitan.

Maaaring magtagumpay ang polling bago mabigo ang susunod na WebSocket upgrade. Siyasatin ang parehong landas at anumang transportOptions na pumapatong sa agent sa pinakamataas na antas.

Sadyang ginagamit ng halimbawa ang dalawang transport na ito. Gumagamit ang WebTransport ng ibang implementasyon, at ang JavaScript na naka-bundle sa browser ay sumusunod sa configuration ng browser. Ang plain WebSocket endpoint ay hindi rin isang Socket.IO server.

Panatilihin ang umiiral na lohika ng event at muling pagkonekta, pagkatapos ay idiskonekta ang client at pakawalan ang agent nito kapag tapos na ang mga koneksyon.

Kaugnay na mga artikulo