Conectar o cliente ws do Node através de um agente HTTP de proxy
Passe HttpsProxyAgent ao construtor ws do Node para que o handshake WebSocket use o proxy de encaminhamento.
O pacote ws do Node aceita um agente HTTP nas suas opções de conexão. Para um proxy de encaminhamento, um 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 pressupõe que ambos os pacotes já fazem parte da aplicação. O URL WebSocket escolhe o serviço; o URL do agente escolhe o proxy. Um endereço HTTP da lista de proxies HTTP pode preencher o URL do agente para um teste WSS público permitido sem credenciais de proxy; verifique o acesso ao endpoint real do serviço.
HttpsProxyAgent estabelece um túnel HTTP CONNECT e entrega o transporte ligado ao cliente. Suporta ligações WebSocket e pedidos HTTPS, pelo que a aplicação não precisa de construir a troca CONNECT por si.
Continue com o tratamento habitual de open, message e close na aplicação. O evento open marca a conclusão do handshake WebSocket na rota escolhida; criar apenas o objeto JavaScript não a concluiu.