UNPKG

node-red-contrib-azure-service-bus-message-receiver

Version:

Receives queue messages from Azure Service Bus Queues

57 lines (42 loc) 1.48 kB
const { ServiceBusClient } = require("@azure/service-bus"); module.exports = function (RED) { function ReceiveMessageNew(config) { RED.nodes.createNode(this, config); const node = this; const created = new Date().toISOString(); node.log("receive-message node created"); const serviceBusClient = new ServiceBusClient(config.connectionString); const receiver = serviceBusClient.createReceiver(config.queue); node.on("close", async (done) => { node.log("Closing " + created + " - " + node.id); if (receiver) { await receiver.close(); } done(); }); node.status({ fill: "green", shape: "dot", text: "connected" }); const processMessageHandler = (message) => { node.status({ fill: "blue", shape: "ring", text: "got a message" }); node.send({ payload: message.body, }); }; const processErrorHandler = (error) => { if (error == "No messages to receive") { node.status({ fill: "green", shape: "dot", text: "connected" }); } else { node.error(error); node.status({ fill: "red", shape: "ring", text: "error, see debug or output", }); } }; receiver.subscribe({ processMessage: processMessageHandler, processError: processErrorHandler, }); } RED.nodes.registerType("receive-message-new", ReceiveMessageNew); };