اتصال کلاینت 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 آن را کامل نکرده است.