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 ସ୍ନିପେଟ ଅନ୍ୟ ପିଢ଼ି ବ୍ୟବହାର କରେ; ଏହାର ପରିବହନ ବିକଳ୍ପ ଚୟନ ପୂର୍ବରୁ ପ୍ୟାକେଜ ଚିହ୍ନଟ କରନ୍ତୁ।