Socket.IO Node.js:ssä: käytä SOCKS-agenttia pollingiin ja WebSocketiin
Pidä Socket.IO-palvelimen URL muuttumattomana ja tarkista transporttikohtaiset ohitukset, jos päivitys epäonnistuu.
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'],
});Käytä varsinaista Socket.IO-palvelua. Noden agentti neuvottelee SOCKSin; socks5h siirtää kohteen DNS:n kyseiselle välityspalvelimelle. Ota vastaava päätepiste SOCKS5-välityspalvelinluettelosta, kun julkisten palvelujen testit julkisten välittäjien kautta ovat sallittuja.
Polling voi onnistua ennen kuin myöhempi WebSocket-päivitys epäonnistuu. Tarkista molemmat polut ja kaikki transportOptions, jotka ohittavat ylätason agentin.
Esimerkki käyttää tarkoituksella näitä kahta transporttia. WebTransport käyttää toista toteutusta, ja selaimeen pakattu JavaScript noudattaa selaimen asetuksia. Pelkkä WebSocket-päätepiste ei myöskään ole Socket.IO-palvelin.
Säilytä olemassa oleva tapahtuma- ja uudelleenyhdistämislogiikka, irrota sitten asiakas ja vapauta sen agentti, kun yhteydet ovat päättyneet.