Koble Nodes ws-klient gjennom en HTTP-proxyagent
Send HttpsProxyAgent til ws-konstruktøren i Node, slik at WebSocket-håndtrykket går gjennom videresendingsproxyen.
Pakken ws i Node godtar en HTTP-agent i tilkoblingsvalgene. 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 er en del av applikasjonen. WebSocket-URL-en velger tjenesten, agent-URL-en velger 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 oppretter en HTTP CONNECT-tunnel og overleverer den tilkoblede transporten til klienten. Den støtter WebSocket-tilkoblinger så vel som HTTPS-forespørsler, så applikasjonen trenger ikke bygge CONNECT-utvekslingen selv.
Fortsett med applikasjonens vanlige håndtering av open, message og close. open-hendelsen markerer at WebSocket-håndtrykket er fullført på den valgte ruten; å bare opprette JavaScript-objektet har ikke fullført det.