queue-client

0.0.18 • Public • Published

RabbitMQ Node.js simple client

This Node.js client for RabbitMQ provides simple PUB/SUB features.

Initialization of the client

var queue_client = require('queue-client');
var exchange_name = 'exchange-to-use';
var rabbitmq_connection = {
  host: 'localhost',
  port: 5672,
  login: 'guest',
  password: 'guest',
  authMechanism: 'AMQPLAIN',
  vhost: '/',
  ssl: {
    enabled: false
  }
};
 
queue = queue_client.init(exchange_name, rabbitmq_connection)

The rabbitmq_connection is sent to the createConnection method of the amqp library. Check its documentation to see the available options/defaults.

Example of use to publish messages:

var topic = 'user.created';
queue.publish(topic, {user_id: 4});

Example of use to subscribe to messages:

var queue_name = 'welcome_emails';
queue.subscribe(queue_name, {ordered: true}, {
  'user.created': function(payload, done) {
    var user_id = payload.user_id;
    // send welcome email to user_id
    done(true);
  }
});

Delayed Queues

To create a delayed queue, specify the delay in milliseconds in the subscription options:

var queue_name = 'apns_notifications';
queue.subscribe(queue_name, {delay: 2000}, {
  'user.created': function(payload, done) {
    var user_token = payload.user_token;
    // send apns notification to user_token
    done(true);
  }
});

Note that order is NOT guaranteed across different routing keys in delayed queues.

Package Sidebar

Install

npm i queue-client

Weekly Downloads

6

Version

0.0.18

License

MIT

Last publish

Collaborators

  • acroca
  • chenzihui
  • gigablah