O paquete ws de Node acepta un axente HTTP nas súas opcións de conexión. Para un proxy de reenvío, un fragmento de módulo ES pode usar 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);
});

Isto supón que ambos os paquetes xa forman parte da aplicación. O URL de WebSocket escolle o servizo; o URL do axente escolle o proxy. Un enderezo HTTP da lista de proxies HTTP pode encher o URL do axente para unha proba WSS pública permitida sen credenciais de proxy; comproba o acceso ao extremo real do servizo.

HttpsProxyAgent establece un túnel HTTP CONNECT e entrega o transporte conectado ao cliente. Admite conexións WebSocket e solicitudes HTTPS, así que a aplicación non precisa construir o intercambio CONNECT por si mesma.

Continúa co manexo habitual de open, message e close da aplicación. O evento open marca a finalización do handshake WebSocket na ruta escollida; crear só o obxecto JavaScript non o completou.

Artigos relacionados