2.0.2 • Published 8 years ago
amqp-dsl v2.0.2
Fluent Interface for dealing with AMQP on NodeJS 
AMQP-DSL is a fluent interface wrapper for node-amqp and help you write AMQP binding code in a clean and efficient way.
Installation
$ npm install amqp-dslUsage overview
Simple connection (more details: docs/example-connection)
amqp = require 'amqp-dsl'
amqp.login(
login: 'user'
password: 'password'
host: 'localhost'
).connect((err, amqp) ->
if err
throw err
return
console.log 'We are connected !'
)Simple example (more details: docs/example-simple)
AmqpDsl = require 'amqp-dsl'
AmqpDsl.login(
login: 'legen'
password: 'dary'
)
.on( 'close', () -> console.error "RabbitMQ connection closed" )
.on( 'error', (err) -> console.error "RabbitMQ error", err )
.on( 'ready', () -> console.log "Connected to RabbitMQ" )
.queue( 'testQueue', (queue) -> console.log "Connected to Queue", queue.name )
.bind( 'stream', '#' )
.bind( 'stream2', 'routing.key' )
.subscribe( (message, header, deliveryInfo) -> )
.queue( 'queue2' )
.bind( 'search', '#.ok' )
.queue( 'queue3', passive:true )
.connect( (err, amqp) ->
if err
throw err
return
# Do other stuff with `amqp` like subscribing to a queue
queue3 = amqp.queues.queue3
queue3.subscribe( ack:true, ( message, header, deliveryInfo ) ->
console.log "Hey ! We got one new message !"
queue3.shift()
)
)See examples/ and docs/ for more information.
API
.login
login( options = {} )
.on
on( event, listener )
.exchange
.exchange( name, options ).exchange( name, callback(exchange) ).exchange( name, options, callback(exchange) )
.queue
.queue( name, options ).queue( name, callback(queue) ).queue( name, options, callback(queue) )
.queue(...).subscribe
.subscribe( callback(message, header, deliveryInfo) ).subscribe( options, callback(message, header, deliveryInfo) )
.queue(...).bind
.bind( name, routingKey )
.connect
.connect().connect( callback(err, amqp) ).connect( amqp, callback(err, amqp) )
The amqp argument is simply hashtable with the following properties:
- queues (hashtable of
AMQP::queues) - exchanges (hashtable of
AMQP::Exchange) - connection (
AMQP::Connection)
Documentation
Build documentation
$ cake doc... and browse docs/
Test
$ npm testRelease History
v2.0.0 - Updated node-amqp to 0.2.0 and async to 0.9.0
v1.0.3 - Support for .connect()
v1.0.2 - Critical bug fix
v1.0.1 - .bind & .subscribe can now be called multiple times. This is the behavior that should have been in place since the beginning.
Donate
License
Copyright (c) 2014 Francois-Guillaume Ribreau Licensed under the MIT license.