Conectar o cliente ws de Node mediante un axente HTTP de proxy
Pasa HttpsProxyAgent ao construtor ws de Node para que o handshake WebSocket use o proxy de reenvío.
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.