Падключэнне кліента 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 яго не завяршыла.