Conectarea clientului ws din Node printr-un agent HTTP proxy
Transmite HttpsProxyAgent constructorului ws din Node, astfel încât strângerea de mână WebSocket să treacă prin proxy-ul forward.
Pachetul ws din Node acceptă un agent HTTP în opțiunile sale de conexiune. Pentru un proxy forward, un fragment de modul ES poate folosi HttpsProxyAgent:
import WebSocket from 'ws';
import { HttpsProxyAgent } from 'https-proxy-agent';
const agent = new HttpsProxyAgent('http://proxy.example.net:8080');
const socket = new WebSocket('wss://socket.example.net/events', {
agent,
});
socket.on('error', error => {
console.error(error.message);
});
Aceasta presupune că ambele pachete fac deja parte din aplicație. URL-ul WebSocket alege serviciul, iar URL-ul agentului alege proxy-ul. O adresă HTTP din lista de proxy-uri HTTP poate completa URL-ul agentului pentru un test WSS public permis fără acreditări de proxy; verificați accesul la punctul final real al serviciului.
HttpsProxyAgent stabilește un tunel HTTP CONNECT și predă clientului transportul conectat. Acceptă conexiuni WebSocket și cereri HTTPS, așa că aplicația nu trebuie să construiască singură schimbul CONNECT.
Continuați cu gestionarea obișnuită a open, message și close în aplicație. Evenimentul open marchează finalizarea strângerii de mână WebSocket pe ruta aleasă; doar crearea obiectului JavaScript nu a finalizat-o.