Socket.IO у Node.js: выкарыстоўвайце агент SOCKS для polling і WebSocket
Пакіньце URL сервера Socket.IO нязменным і праверце пераазначэнні для кожнага транспарту, калі абнаўленне не ўдалося.
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'],
});Выкарыстоўвайце сапраўдную службу Socket.IO. Агент Node дамаўляецца пра SOCKS; socks5h перадае DNS прызначэння гэтаму проксі. Бярыце адпаведны канчатковы пункт з спіса проксі SOCKS5, калі тэсты публічных службаў праз публічных пасярэднікаў дазволены.
Polling можа ўдацца, перш чым познейшае абнаўленне WebSocket праваліцца. Праверце абодва шляхі і любыя transportOptions, якія перакрываюць агент верхняга ўзроўню.
Прыклад наўмысна выкарыстоўвае гэтыя два транспарты. WebTransport мае іншую рэалізацыю, а JavaScript, убудаваны ў браўзер, падпарадкоўваецца наладам браўзера. Звычайны канчатковы пункт WebSocket таксама не з'яўляецца серверам Socket.IO.
Захавайце існуючую логіку падзей і перападлучэння, затым адключыце кліента і вызваліце яго агент пасля завяршэння злучэнняў.