توصيل عميل 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 نفق CONNECT عبر HTTP ويسلّم النقل المتصل إلى العميل. وهو يدعم اتصالات WebSocket وطلبات HTTPS، فلا يحتاج التطبيق إلى بناء تبادل CONNECT بنفسه.
واصل التعامل المعتاد مع open وmessage وclose في التطبيق. يشير حدث open إلى اكتمال مصافحة WebSocket على المسار المختار؛ أما إنشاء كائن JavaScript وحده فلم يكملها.