El paquet ws de Node accepta un agent HTTP a les seves opcions de connexió. Per a un proxy directe, un fragment de mòdul ES pot fer servir 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);
});

Això suposa que tots dos paquets ja formen part de l'aplicació. L'URL de WebSocket tria el servei, i l'URL de l'agent tria el proxy. Una adreça HTTP de la llista de proxys HTTP pot omplir l'URL de l'agent per a una prova WSS pública permesa sense credencials de proxy; comprova l'accés a l'extrem real del servei.

HttpsProxyAgent estableix un túnel HTTP CONNECT i lliura el transport connectat al client. Admet connexions WebSocket i peticions HTTPS, així que l'aplicació no ha de construir l'intercanvi CONNECT pel seu compte.

Continua amb el maneig habitual d'open, message i close de l'aplicació. L'esdeveniment open marca la finalització de l'handshake WebSocket a la ruta triada; crear només l'objecte JavaScript no l'ha completat.

Articles relacionats