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.

Relaterade artiklar