Socket
Book a DemoInstallSign in
Socket

amqp-simple-pub-sub

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

amqp-simple-pub-sub

A simple Pub Sub system that uses AMQP Messaging to exchange data between services

Source
npmnpm
Version
1.0.5
Version published
Weekly downloads
73
43.14%
Maintainers
1
Weekly downloads
 
Created
Source

AMQP Simple Pub Sub

Greenkeeper badge

A simple Pub Sub system that uses AMQP Messaging to exchange data between services

  • developCircleCI codecov
  • masterCircleCI codecov

NPM

To Use

You project needs to be using at least Node version 8, and ideally Node 10 or better.

npm install amqp-simple-pub-sub

Create a Publisher

const { makePublisher } = require('amqp-simple-pub-sub')
const publisher = makePublisher({ exchange: 'testService' })

Publish a message

await publisher.start()
publisher.publish('test', 'Hello World')

Create a Subscriber

const { makeSubscriber } = require('amqp-simple-pub-sub')

const subscriber = makeSubscriber({
  exchange: 'testService',
  queueName: 'testQueue',
  routingKeys: ['test']
})

Subscribe to a queue and listen for messages

const handler = message => {
  console.log('Message Received', message)
  subscriber.ack(message)
}

subscriber.start(handler)

Other Options

Publisher

The full options object is as follows

{
  type: 'topic' // the default
  url: 'amqp://localhost' // the default
  exchange: 'you must provide this' // it's the name of your service usually
  onError: err => { // optional
    console.error('A connection error happened', err) // or do something clever
  }
  onClose: () => { // optional
    console.log('The connection has closed.') // or do something clever
  }
}

Subscriber

The full options object is as follows

{
  type: 'topic' // the default
  url: 'amqp://localhost' // the default
  exchange: 'you must provide this' // it's the name of your service usually
  queueName: 'you must also provide this' // give your queue a name
  routingKeys: ['an', 'array', 'of', 'routingKeys'] // optional.  Uses [queueName] otherwise.
  onError: err => { // optional
    console.error('A connection error happened', err) // or do something clever
  }
  onClose: () => { // optional
    console.log('The connection has closed.') // or do something clever
  }
}

Examples

See some examples in the tests, and also:

Development

Prerequisites

Initialisation

npm install

To Start the queue server for integration testing.

docker-compose up -d

Runs Rabbit MQ.

Test it

  • npm test — runs the unit tests (quick and does not need rabbit mq running)
  • npm run test:integration — runs the integration tests (not so quick and needs rabbitmq running)

Lint it

npm run lint

Contributing

Please see the contributing notes.

Keywords

amqp

FAQs

Package last updated on 20 Sep 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts