Azure Service Bus client library samples for TypeScript

These sample programs show how to use the TypeScript client libraries for Azure Service Bus in some common scenarios.

File Name Description
sendMessages.ts uses the sendMessages() function to send messages to Service Bus Queue/Topic
receiveMessagesStreaming.ts uses the subscribe() function to receive Service Bus messages in a stream
receiveMessagesLoop.ts uses the receiveMessages() function to receive Service Bus messages in a loop
scheduledMessages.ts uses the scheduleMessage() function to schedule messages to appear on a Service Bus Queue/Subscription at a later time
session.ts sends/receives messages to/from session enabled queues/subscriptions in Service Bus
browseMessages.ts uses the peekMessages() function to browse a Service Bus
usingAadAuth.ts creates a ServiceBusClient that authenticates using AAD credentials
useProxy.ts creates a ServiceBusClient that uses an HTTP(S) proxy server to make requests
advanced/movingMessagesToDLQ.ts moves a message explicitly to the dead-letter queue
advanced/deferral.ts uses the defer() function to defer a message for later processing
advanced/processMessageFromDLQ.ts retrieves a message from a dead-letter queue, edits it, and sends it back to the main queue
advanced/sessionRoundRobin.ts uses ServiceBusSessionReceiver's ability to get the next available session to round-robin through all sessions in a Queue/Subscription
advanced/sessionState.ts uses a "shopping cart" example to demonstrate how session-state information can be read and maintained in an application
advanced/administrationClient.ts demonstrates how the ServiceBusAdministrationClient can be used to manage the resources of a service bus namespace
advanced/listingEntities.ts Async iterable iterators with pagination support for all the listing methods under ServiceBusAdministrationClient like listQueues(), listTopics(),listQueuesRuntimeProperties(), etc


The samples are compatible with Node.js >= 8.0.0, except for the samples that use the async for await syntax, which require Node.js >= 10.0.0.

Before running the samples in Node, they must be compiled to JavaScript using the TypeScript compiler. For more information on TypeScript, see the TypeScript documentation. Install the TypeScript compiler using

npm install -g typescript

You need an Azure subscription and an Azure Service Bus namespace to run these sample programs. Samples retrieve credentials to access the Service Bus from environment variables. Alternatively, edit the source code to include the appropriate credentials. See each individual sample for details on which environment variables/credentials it requires to function.

Adapting the samples to run in the browser may require additional consideration. For details, please see the package README.


To run the samples using the published version of the package:

  1. Install the dependencies using npm:
npm install
  1. Compile the samples
npm run build
  1. Edit the file sample.env, adding the correct credentials to access the Azure service and run the samples. Then rename the file from sample.env to just .env. The sample programs will read this file automatically.

  2. Run whichever samples you like (note that some samples may require additional setup, see the table above):

node dist/sendMessages.js

Alternatively, run a single sample with the correct environment variables set (step 3 is not required if you do this), for example (cross-platform):

npx cross-env SERVICEBUS_ENDPOINT="<endpoint>" SERVICEBUS_CONNECTION_STRING="<connection string>" QUEUE_NAME="<queue name>" node dist/basic.js

Next Steps

Take a look at our API Documentation for more information about the APIs that are available in the clients.