UNPKG

amqp-dsl

Version:

Amqp-DSL - Fluent interface for node-amqp

73 lines (58 loc) 2.06 kB
AmqpDsl = require 'amqp-dsl' AmqpDsl # First we log in, here the list of the available parameters and their default value # # { # login: 'guest' # password: 'guest' # host:'localhost' # port: 5672 # vhost: '/' # } # .login( login: 'legen' password: 'dary' ) # Bind listeners to some events (available events are `close`, `error` and `ready`) .on('close', () -> console.error "RabbitMQ connection closed") .on('error', (err) -> console.error "RabbitMQ error", err) .on('ready', () -> console.log "Connected to RabbitMQ") # We create a queue (`passive: false` see AMQP doc) with `.queue` # # * `.queue( name, options )` # * `.queue( name, callback(queue) )` # * `.queue( name, options, callback(queue) )` .queue('testQueue', (queue) -> console.log "Connected to Queue", queue.name) # (optional) ... and bind that queue to an exchange with `.bind` # # * `.bind( name, routingKey )` .bind('stream', '#') # (optional) ... and subscribe for messages (without `ack` in this example) # # * `.subscribe( callback(message, header, deliveryInfo) )` # * `.subscribe( options, callback(message, header, deliveryInfo) )` .subscribe((message, header, deliveryInfo) -> ) # Create another queue `queue2` that will be binded to `search` exchange with the routing key `#.ok` .queue('queue2') .bind('search', '#.ok') # Connect to an existing queue `queue3` .queue('queue3', passive:true, (queue)-> console.log "Connected to Queue", queue.name) # And now it's time to connect ! # `amqp` contains: # # * `amqp.connections` == `[node-amqp::Connection]` # * `amqp.queues` == `{}` # * `amqp.exchanges` == `{}` .connect((err, amqp) -> if err throw err return console.log 'We are connected !' # Do other stuff with `amqp` like subscribing to a queue queue3 = amqp.queues.queue3 queue3.subscribe(ack:true, (message) -> console.log "Hey ! We got one new message !" queue3.shift() ) )