Пакет ws у Node приймає HTTP-агент у параметрах з'єднання. Для форвардного проксі фрагмент ES-модуля може використовувати 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);
});

Передбачається, що обидва пакети вже входять до застосунку. URL WebSocket вибирає службу, а URL агента вибирає проксі. HTTP-адреса зі списку HTTP-проксі може заповнити URL агента для дозволеного публічного тесту WSS без облікових даних проксі; перевірте доступ до реальної кінцевої точки служби.

HttpsProxyAgent створює тунель HTTP CONNECT і передає підключений транспорт клієнту. Він підтримує з'єднання WebSocket і запити HTTPS, тому застосунку не потрібно самому будувати обмін CONNECT.

Продовжуйте звичайну обробку open, message і close у застосунку. Подія open позначає завершення рукостискання WebSocket на вибраному маршруті; створення лише об'єкта JavaScript його не завершило.

Схожі статті