Knytt Nodes ws-klient til en HTTP-proxyagent
Gi HttpsProxyAgent til ws-konstruktøren i Node, så WebSocket-håndtrykket går via videresendingsproxyen.
Pakken ws i Node tar imot en HTTP-agent i tilkoplingsvalgene. For en videresendingsproxy kan et ES-modulfragment bruke 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);
});
Dette forutsetter at begge pakkene allerede inngår i applikasjonen. WebSocket-URL-en peker ut tjenesten, agent-URL-en peker ut proxyen. En HTTP-adresse fra HTTP-proxylisten kan fylle agent-URL-en for en tillatt offentlig WSS-test uten proxy-påloggingsinformasjon; kontroller tilgangen til tjenestens faktiske endepunkt.
HttpsProxyAgent setter opp en HTTP CONNECT-tunnel og overlater den tilkoblede transporten til klienten. Den støtter WebSocket-tilkoblinger og HTTPS-forespørsler, så applikasjonen slipper å bygge CONNECT-utvekslingen selv.
Fortsett med applikasjonens vanlige behandling av open, message og close. open-hendelsen viser at WebSocket-håndtrykket er fullført på den valgte ruten; bare å opprette JavaScript-objektet har ikke fullført det.