Node.js ಗಾಗಿ Azure Service Bus: WebSockets ಮೇಲೆ AMQP ಮೂಲಕ HTTP ಪ್ರಾಕ್ಸಿ
AMQP ಸಂಪರ್ಕವು HTTP ಪ್ರಾಕ್ಸಿ ಮೂಲಕ ಹಾದುಹೋಗಬೇಕಾದಾಗ @azure/service-bus ಅನ್ನು ws ಮತ್ತು HttpsProxyAgent ಜೊತೆಗೆ ಸಂರಚಿಸಿ.
HTTP ಪ್ರಾಕ್ಸಿಯ ಹಿಂದೆ ಇರುವ Node ನ Service Bus v7 ಸಂದೇಶ ಕ್ಲೈಂಟ್ಗಾಗಿ SDK ಮಾದರಿಯ AMQP-over-WebSockets ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸಿ:
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 namespace ಪರೀಕ್ಷೆಗೆ HTTP ಪ್ರಾಕ್ಸಿ ಪಟ್ಟಿಯಿಂದ HTTP ನಮೂದು proxyUrl ಒದಗಿಸಬಹುದು. ws ಮತ್ತು https-proxy-agent ಪ್ಯಾಕೇಜ್ಗಳು ಈಗಾಗಲೇ ಅಪ್ಲಿಕೇಶನ್ ಅವಲಂಬನೆಗಳಾಗಿರಬೇಕು. ಮೂಲ ws ಪ್ರಾಕ್ಸಿ-ಏಜೆಂಟ್ ಇಂಟರ್ಫೇಸ್ WebSocket ಸೇವೆ ಮತ್ತು ಪ್ರಾಕ್ಸಿ ವಿಳಾಸಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇಡುತ್ತದೆ.
ಇದು ಕ್ಲೈಂಟ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ; ಕಳುಹಿಸುವವರು ಅಥವಾ ಸ್ವೀಕರಿಸುವವರು ಕಾರ್ಯಾಚರಣೆ ಮಾಡಿದಾಗ ಸಂಪರ್ಕ ಉಂಟಾಗುತ್ತದೆ. ಆ ಕೆಲಸದ ಹೊರೆಗಾಗಿ ಅದನ್ನು ಇರಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಸ್ಥಗಿತದಲ್ಲಿ client.close() ಗಾಗಿ ಕಾಯಿರಿ.
ಪ್ರಾಕ್ಸಿ ಸುರಂಗ ಸೆಟಪ್, WebSocket ಸಮಾಲೋಚನೆ ಮತ್ತು Service Bus ಕಾರ್ಯಾಚರಣೆಯ ನಡುವೆ ವೈಫಲ್ಯವನ್ನು ಹುಡುಕಿ. ಪ್ರಾಕ್ಸಿ ಆ ಗಮ್ಯಸ್ಥಾನ ಮತ್ತು ಅಧಿವೇಶನವನ್ನು ಅನುಮತಿಸಬೇಕು. ಸಣ್ಣ HTTPS ಪ್ರವೇಶವು ಅಪ್ಗ್ರೇಡ್ ಬೆಂಬಲ ಅಥವಾ ಸ್ವೀಕಾರಾರ್ಹ ದೀರ್ಘಕಾಲೀನ ಸಂಪರ್ಕ ಮಿತಿಯನ್ನು ಸಾಬೀತುಪಡಿಸುವುದಿಲ್ಲ.
ಇದು ಸಂಪರ್ಕ-ಸ್ಟ್ರಿಂಗ್ ಓವರ್ಲೋಡ್. ಗುರುತಿನ ರುಜುವಾತು ಪ್ರತ್ಯೇಕವಾಗಿ ಸಂರಚಿಸಿದ ಟೋಕನ್-ಸ್ವಾಧೀನ ಮಾರ್ಗವನ್ನು ಸೇರಿಸಬಹುದು. ಹಳೆಯ azure-sb REST ಸ್ನಿಪೆಟ್ಗಳು ಇನ್ನೊಂದು ಪೀಳಿಗೆಯನ್ನು ಬಳಸುತ್ತವೆ; ಅದರ ಸಾರಿಗೆ ಆಯ್ಕೆಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಮೊದಲು ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಗುರುತಿಸಿ.