0.1.2 • Published 9 years ago
amqp-client v0.1.2
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] )exchangestring.
If empty, we publish message via default AMQP exchange
queuestring.
Queue, where we want to publish message to
contentstring/objectoptionsobject.
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 )queuestring
Queue, which we want to listen.
optionsobject.
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"
}
}
]
}handlerfunction.
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).
Examples
0.1.2
9 years ago