Свързване на 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);
});
Това предполага, че двата пакета вече са част от приложението. WebSocket адресът избира услугата, а адресът на агента избира проксито. HTTP адрес от списъка с HTTP проксита може да запълни адреса на агента за разрешен публичен WSS тест без данни за проксито; проверете достъпа до действителната крайна точка на услугата.
HttpsProxyAgent установява HTTP CONNECT тунел и предава свързания транспорт на клиента. Той поддържа WebSocket връзки, както и HTTPS заявки, така че приложението не трябва само да изгражда CONNECT размяната.
Продължете с обичайната обработка на open, message и close в приложението. Събитието open отбелязва завършването на WebSocket ръкостискането по избрания маршрут; самото създаване на JavaScript обекта не го е завършило.