Balíček ws v Node přijímá HTTP agenta ve svých možnostech připojení. Pro forward proxy může fragment ES modulu použít 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);
});

Předpokládá to, že oba balíčky jsou už součástí aplikace. URL WebSocketu vybírá službu, URL agenta vybírá proxy. HTTP adresa ze seznamu HTTP proxy může vyplnit URL agenta pro povolený veřejný test WSS bez přihlašovacích údajů k proxy; ověřte přístup ke skutečnému koncovému bodu služby.

HttpsProxyAgent vytváří tunel HTTP CONNECT a předává připojený transport klientovi. Podporuje připojení WebSocket i požadavky HTTPS, takže aplikace nemusí výměnu CONNECT sestavovat sama.

Pokračujte obvyklým zpracováním open, message a close v aplikaci. Událost open označuje dokončení WebSocket handshaku na zvolené trase; samotné vytvoření objektu JavaScript ho nedokončilo.

Související články