Azure Service Bus สำหรับ Node.js: พร็อกซี HTTP ผ่าน AMQP บน WebSockets
กำหนดค่า @azure/service-bus ด้วย ws และ HttpsProxyAgent เมื่อการเชื่อมต่อ AMQP ต้องผ่านพร็อกซี HTTP
สำหรับไคลเอนต์ส่งข้อความ Service Bus v7 ของ Node ที่อยู่หลังพร็อกซี HTTP ให้ใช้การจัดวาง AMQP-over-WebSockets จากตัวอย่าง SDK:
const { ServiceBusClient } = require("@azure/service-bus");
const WebSocket = require("ws");
const { HttpsProxyAgent } = require("https-proxy-agent");
const proxyAgent = new HttpsProxyAgent(proxyUrl);
const client = new ServiceBusClient(connectionString, {
webSocketOptions: {
webSocket: WebSocket,
webSocketConstructorOptions: { agent: proxyAgent },
},
});
ระบุ URL ของพร็อกซีและสตริงการเชื่อมต่อ Service Bus สำหรับการทดสอบเนมสเปซ Service Bus สาธารณะที่ได้รับอนุญาตโดยไม่มีการตรวจสอบสิทธิ์พร็อกซี รายการ HTTP จากรายการพร็อกซี HTTPสามารถให้ proxyUrl ได้ แพ็กเกจ ws และ https-proxy-agent ต้องเป็น dependency ของแอปพลิเคชันอยู่แล้ว อินเทอร์เฟซตัวแทนพร็อกซี ws พื้นฐานเก็บบริการ WebSocket และที่อยู่พร็อกซีแยกจากกัน
สิ่งนี้สร้างไคลเอนต์ การเชื่อมต่อเกิดขึ้นเมื่อผู้ส่งหรือผู้รับดำเนินการใด ๆ เก็บไว้สำหรับภาระงานนั้นและรอ client.close() เมื่อปิด
ค้นหาความล้มเหลวในการตั้งอุโมงค์พร็อกซี การเจรจา WebSocket และการดำเนินการ Service Bus พร็อกซีต้องอนุญาตปลายทางและเซสชันนั้น การเข้าถึง HTTPS ระยะสั้นไม่ได้พิสูจน์การรองรับการอัปเกรดหรือขีดจำกัดการเชื่อมต่อระยะยาวที่ยอมรับได้
นี่คือโอเวอร์โหลดของสตริงการเชื่อมต่อ ข้อมูลรับรองตัวตนสามารถเพิ่มเส้นทางการรับโทเค็นที่กำหนดค่าแยกต่างหาก สนิบเพ็ต REST ของ azure-sb แบบเก่าใช้รุ่นอื่น ระบุแพ็กเกจก่อนเลือกตัวเลือกการขนส่ง