Il pacchetto ws di Node accetta un agente HTTP nelle sue opzioni di connessione. Per un proxy forward, un frammento di modulo ES può usare 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);
});

Questo presuppone che entrambi i pacchetti facciano già parte dell'applicazione. L'URL WebSocket sceglie il servizio, l'URL dell'agente sceglie il proxy. Un indirizzo HTTP dalla lista di proxy HTTP può riempire l'URL dell'agente per un test WSS pubblico consentito senza credenziali proxy; verifica l'accesso all'endpoint reale del servizio.

HttpsProxyAgent stabilisce un tunnel HTTP CONNECT e consegna al client il trasporto connesso. Supporta connessioni WebSocket e richieste HTTPS, quindi l'applicazione non deve costruire da sé lo scambio CONNECT.

Prosegui con la gestione abituale di open, message e close nell'applicazione. L'evento open segnala il completamento della stretta di mano WebSocket sul percorso scelto; creare solo l'oggetto JavaScript non l'ha completata.

Articoli correlati