easy-amqp

fluent wrapper around amqp

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
easy-amqp
0.1.311 years ago11 years agoMinified + gzip package size for easy-amqp in KB

Readme

easy-amqp

Implements a wrapper around the node.js amqp module to provide more fluent and easy to use RabbitMQ support
Usage
Install via NPM
$ npm install easy-amqp
Overview
In amqp the example given to subscribe to a queue on the default topic exchange is:
var amqp = require('amqp');
var connection = amqp.createConnection({ host: 'dev.rabbitmq.com' });

// Wait for connection to become established.
connection.on('ready', function () {
  // Use the default 'amq.topic' exchange
  connection.queue('my-queue', function(q){
      // Catch all messages
      q.bind('#');

      // Receive messages
      q.subscribe(function (message) {
        // Print messages to stdout
        console.log(message);
      });
  });
});

With easy-amq, the same code can be written as:
require('easy-amqp')
  .createConnection('amqp://dev.rabbitmq.com:5672')
  .queue('my-queue')
  .bind('#')
  .subscribe(function(message) {
    console.log(message);
  });
Connection
To create a connection use the createConnection method on the module similar to amqp
var easyamqp = require('easy-amqp');

// Connections using an amqp URI are supported
easyamqp.createConnection("amqp://localhost:5672");

// Connections using options and implOptions like the amqp driver are supported
easyamqp.createConnection({ host: 'localhost', port: 5672, login: 'guest', password: 'guest', vhost: '/' }, { defaultExchangeName: "amq.topic" })
Exchange
Create one or more exchanges on the connection object
conn
  .exchange('my-exchange')
  .exchange('another-exchange', { type : 'fanout', durable : true }) // options from the amqp driver are supported
  // You must call publish or subscribe after this for the exchange(s) to be created
Queue
Create one or more queues on the connection object
conn
  .queue('my-queue')
  .queue('another-queue', { durable : true }); // options from the amqp driver are supported
  // You must call subscribe after this for the queue(s) to be created
Binding
Calling bind will create a binding from the last referenced queue or exchange
conn
  .queue('my-queue')
  .bind('my-exchange', '#'); // Create binding from my-queue to my-exchange
  // You must call subscribe after this for the bindings to be created
Subscribe
Calling this method will subscribe to the last referenced queue
conn
  .queue('my-queue')
  .bind('my-exchange', '#')
  .subscribe(function(message, headers, deliveryInfo, queue) {
    console.log(message)
  });
Publish
Calling this method will publish a message to the last referenced exchange
conn
  .exchange('my-exchange')
  .publish('routing-key', 'message')
Tests
To run the tests use
$ make test