Anslut Nodes ws-klient via en HTTP-proxyagent
Skicka HttpsProxyAgent till ws-konstruktorn i Node så att WebSocket-handskakningen går via forward-proxyn.
Paketet ws i Node accepterar en HTTP-agent i sina anslutningsalternativ. För en forward-proxy kan ett ES-modulfragment använda 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);
});
Detta förutsätter att båda paketen redan är en del av applikationen. WebSocket-URL:en väljer tjänsten, agent-URL:en väljer proxyn. En HTTP-adress från HTTP-proxylistan kan fylla agent-URL:en för ett tillåtet offentligt WSS-test utan proxyinloggning; kontrollera åtkomsten till tjänstens faktiska slutpunkt.
HttpsProxyAgent upprättar en HTTP CONNECT-tunnel och överlämnar den anslutna transporten till klienten. Den stöder WebSocket-anslutningar såväl som HTTPS-förfrågningar, så applikationen behöver inte själv bygga CONNECT-utbytet.
Fortsätt med applikationens vanliga hantering av open, message och close. Händelsen open markerar att WebSocket-handskakningen är klar på den valda vägen; att bara skapa JavaScript-objektet har inte slutfört den.