Odesílání a příjem zpráv z front Service Bus Azure (JavaScript)
V tomto kurzu zjistíte, jak pomocí balíčku v javascriptového programu odesílat zprávy do fronty a přijímat je @azure/service-bus Service Bus fronty.
Poznámka
Tento rychlý start obsahuje podrobné pokyny pro jednoduchý scénář odesílání zpráv do Service Bus fronty a jejich příjmu. Předem vytvořené ukázky JavaScriptu a TypeScriptu pro Azure Service Bus najdete v úložišti Sady Azure SDK pro JavaScript na GitHub.
Požadavky
- Předplatné Azure. K dokončení tohoto kurzu potřebujete mít účet Azure. Můžete si aktivovat výhody předplatitele MSDN nebo si zaregistrovat bezplatný účet.
- Pokud nemáte frontu, se kterou můžete pracovat, postupujte podle kroků v článku Vytvoření fronty pomocí Azure Portal k Service Bus fronty. Poznamenejte si připojovací řetězec pro váš Service Bus názvů a název fronty, kterou jste vytvořili.
Poznámka
- Tento kurz funguje s ukázkou, kterou můžete zkopírovat a spustit pomocí Nodejs. Pokyny k vytvoření aplikace Node.js najdete v tématu Vytvoření a nasazení aplikace Node.js na web Azurenebo vNode.js službě pomocí Windows PowerShell.
Instalace balíčku pomocí Node Package Manageru (NPM)
Pokud chcete nainstalovat balíček npm pro Service Bus, otevřete příkazový řádek, který má v cestě , změňte adresář na složku, ve které chcete ukázky mít, a pak spusťte npm tento příkaz.
npm install @azure/service-bus
Zasílání zpráv do fronty
Následující ukázkový kód ukazuje, jak odeslat zprávu do fronty.
Otevřete oblíbený editor, například Visual Studio Code.
Vytvořte soubor s názvem a
send.jsvložte do něj následující kód. Tento kód odesílá jména vědců jako zprávy do vaší fronty.const { ServiceBusClient } = require("@azure/service-bus"); // connection string to your Service Bus namespace const connectionString = "<CONNECTION STRING TO SERVICE BUS NAMESPACE>" // name of the queue const queueName = "<QUEUE NAME>" const messages = [ { body: "Albert Einstein" }, { body: "Werner Heisenberg" }, { body: "Marie Curie" }, { body: "Steven Hawking" }, { body: "Isaac Newton" }, { body: "Niels Bohr" }, { body: "Michael Faraday" }, { body: "Galileo Galilei" }, { body: "Johannes Kepler" }, { body: "Nikolaus Kopernikus" } ]; async function main() { // create a Service Bus client using the connection string to the Service Bus namespace const sbClient = new ServiceBusClient(connectionString); // createSender() can also be used to create a sender for a topic. const sender = sbClient.createSender(queueName); try { // Tries to send all messages in a single batch. // Will fail if the messages cannot fit in a batch. // await sender.sendMessages(messages); // create a batch object let batch = await sender.createMessageBatch(); for (let i = 0; i < messages.length; i++) { // for each message in the array // try to add the message to the batch if (!batch.tryAddMessage(messages[i])) { // if it fails to add the message to the current batch // send the current batch as it is full await sender.sendMessages(batch); // then, create a new batch batch = await sender.createMessageBatch(); // now, add the message failed to be added to the previous batch to this batch if (!batch.tryAddMessage(messages[i])) { // if it still can't be added to the batch, the message is probably too big to fit in a batch throw new Error("Message too big to fit in a batch"); } } } // Send the last created batch of messages to the queue await sender.sendMessages(batch); console.log(`Sent a batch of messages to the queue: ${queueName}`); // Close the sender await sender.close(); } finally { await sbClient.close(); } } // call the main function main().catch((err) => { console.log("Error occurred: ", err); process.exit(1); });Nahraďte
<CONNECTION STRING TO SERVICE BUS NAMESPACE>připojovacím řetězcem pro váš Service Bus názvů.Nahraďte
<QUEUE NAME>názvem fronty.Pak spusťte příkaz na příkazovém řádku, aby se tento soubor spouštěl.
node send.jsMěli byste vidět následující výstup.
Sent a batch of messages to the queue: myqueue
Příjem zpráv z fronty
Otevřete oblíbený editor, například Visual Studio Code
Vytvořte soubor s názvem a
receive.jsvložte do něj následující kód.const { delay, ServiceBusClient, ServiceBusMessage } = require("@azure/service-bus"); // connection string to your Service Bus namespace const connectionString = "<CONNECTION STRING TO SERVICE BUS NAMESPACE>" // name of the queue const queueName = "<QUEUE NAME>" async function main() { // create a Service Bus client using the connection string to the Service Bus namespace const sbClient = new ServiceBusClient(connectionString); // createReceiver() can also be used to create a receiver for a subscription. const receiver = sbClient.createReceiver(queueName); // function to handle messages const myMessageHandler = async (messageReceived) => { console.log(`Received message: ${messageReceived.body}`); }; // function to handle any errors const myErrorHandler = async (error) => { console.log(error); }; // subscribe and specify the message and error handlers receiver.subscribe({ processMessage: myMessageHandler, processError: myErrorHandler }); // Waiting long enough before closing the sender to send messages await delay(20000); await receiver.close(); await sbClient.close(); } // call the main function main().catch((err) => { console.log("Error occurred: ", err); process.exit(1); });Nahraďte
<CONNECTION STRING TO SERVICE BUS NAMESPACE>připojovacím řetězcem pro váš Service Bus názvů.Nahraďte
<QUEUE NAME>názvem fronty.Pak spusťte příkaz na příkazovém řádku, aby se tento soubor spouštěl.
node receive.jsMěli byste vidět následující výstup.
Received message: Albert Einstein Received message: Werner Heisenberg Received message: Marie Curie Received message: Steven Hawking Received message: Isaac Newton Received message: Niels Bohr Received message: Michael Faraday Received message: Galileo Galilei Received message: Johannes Kepler Received message: Nikolaus Kopernikus
Na stránce Přehled oboru názvů Service Bus v části Azure Portal uvidíte počet příchozích a odchozích zpráv. Možná budete muset asi minutu počkat a pak stránku aktualizovat, abyste viděli nejnovější hodnoty.
Výběrem fronty na této stránce Přehled přejděte na Service Bus fronty. Na této stránce se zobrazí také počet příchozích a odchozích zpráv. Zobrazí se také další informace, jako je aktuální velikost fronty, maximální velikost, počet aktivních zpráv atd.
Další kroky
Projděte si následující dokumentaci a ukázky: