Azure Service Bus für Node.js: HTTP-Proxy über AMQP über WebSockets
Konfigurieren Sie @azure/service-bus mit ws und HttpsProxyAgent, wenn die AMQP-Verbindung einen HTTP-Proxy passieren muss.
Für den Service Bus v7-Messaging-Client von Node hinter einem HTTP-Proxy verwenden Sie die AMQP-over-WebSockets-Anordnung aus dem SDK-Beispiel:
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 },
},
});
Geben Sie die Proxy-URL und die Service Bus-Verbindungszeichenfolge an. Für einen zulässigen Test eines öffentlichen Service Bus-Namespace ohne Proxy-Authentifizierung kann ein HTTP-Eintrag aus der HTTP-Proxy-Liste proxyUrl liefern. Die Pakete ws und https-proxy-agent müssen bereits Anwendungsabhängigkeiten sein. Die zugrunde liegende ws-Proxy-Agent-Schnittstelle hält den WebSocket-Dienst und die Proxy-Adressen getrennt.
Dies erstellt den Client; die Verbindung entsteht, wenn ein Sender oder Empfänger einen Vorgang ausführt. Behalten Sie ihn für diese Arbeitslast und warten Sie beim Herunterfahren auf client.close().
Lokalisieren Sie einen Fehler bei Proxy-Tunnelaufbau, WebSocket-Aushandlung und Service Bus-Vorgang. Der Proxy muss dieses Ziel und diese Sitzung zulassen. Kurzer HTTPS-Zugriff belegt weder Upgrade-Unterstützung noch ein akzeptables Limit für langlebige Verbindungen.
Dies ist die Überladung mit Verbindungszeichenfolge. Ein Identitätsnachweis kann einen separat konfigurierten Token-Beschaffungspfad hinzufügen. Alte azure-sb-REST-Snippets verwenden eine andere Generation; identifizieren Sie das Paket, bevor Sie seine Transportoptionen wählen.