Підключення клієнта ws з Node через HTTP-агент проксі
Передайте HttpsProxyAgent у конструктор ws з Node, щоб рукостискання WebSocket ішло через форвардний проксі.
Пакет 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 його не завершило.