amqp-client
v0.1.2
Published
AMQP Client with reconnection logic to publish and consume RabbitMQ messages
Downloads
21
Readme
AMQP Client
AMQP Client with reconnection logic to publish and consume RabbitMQ messages
Basic Usage
To publish message
# Initialize our amqp client
var amqpClient = require( 'amqp-client' ).create( "amqp://localhost" );
# start publisher. It opens stable connection to Rabbit MQ.
var publisher = amqpClient.publisher();
# Publish your message to queue jobs. Default exchange is used in the example.
publisher.publish( "", "jobs", "Hello World!" );
Publisher options
publisher.publish( exchange, queue, content, [options] )
exchange
string.
If empty, we publish message via default AMQP exchange
queue
string.
Queue, where we want to publish message to
content
string/objectoptions
object.
Optional. You can specify headers via options:
var options = {
"headers": {
"msg-header-1": "value1",
"msg-header-2": "value1"
}
}
To consume messages
Note, consumer also creates exchange, queue and binds routes if they are not set.
# Initialize our amqp client
var amqpClient = require( 'amqp-client' ).create( "amqp://localhost" );
# Start worker. As mentioned above it also creates exchange, queue and binds routes if they are not set.
amqpClient.worker( "jobs", {}, function( msg, cb ) {
console.log( "Got msg", msg.content.toString() );
cb(true);
});
Worker options
amqpClient.worker( queue, options, handler )
queue
string
Queue, which we want to listen.
options
object.
Optional. Set empty {}
object if you want to use defaults.
It may have the following properties ( parameters ):
{
// string. By default is empty (default). Any custom queue may be set.
"exchange": "",
// string. Type of exchange. Available types: direct, topic, headers, fanout
// If exchange is empty ( default ), exchangeType is ignored
"exchangeType": "direct",
// string/array. Routing Key rules list which should be bind to specified queue. Default: queue's name of worker
"bindings": null,
// null/object. Optional. Extends options for assertExchange. Default: { durable: true }
exchangeOptions: null
}
Option bindings
examples:
{
"bindings": "routing.key"
}
{
"bindings": [ "routing.key", "*.key" ]
}
{
"bindings": [
{
"pattern": "routing.key",
"args": {
"custom-header-1": "value-1",
"custom-header-2": "value-2"
}
}
]
}
handler
function.
Handles every message.
Note, the function must return boolean
:
If message is successfully parsed, it has to return true
, in other case, - false
(the messaged will be rejected).