rpc-amqp
v0.2.20
Published
node.js library for cross-application communication via amqp.
Readme
rpc-amqp
node.js library for cross-application communication via amqp.
#Setup
Install the dependency:
npm install rpc-amqp
Require it in your application:
var RPC = require('rpc-amqp');#Usage
To make the library working you need to have a default installation of RabbitMQ message broker: https://www.rabbitmq.com/download.html
##Client
Create a client object to send and receive RPCs (multiple objects could be created within the same scope):
var client = RPC.create();##Connection
You can establish a connection to a default localhost with guest:guest credentials:
client.connect();Or customize your connection with parameters:
client.connect({
host: 'localhost',
port: 5672,
username: 'guest',
password: 'guest'
});##Ready
When the library connects to the broker and makes all preparations it emits ready event. At this point you can start registering callbacks and send RPCs:
client.on('ready', function() {
// messages sending and callbacks registration here
});##Workflow
The workflow consists of sending, receiving and returning the result:
- to send a call you invoke
callmethod on your client. - to receive a call you implement a callback function with client's
register. - to return a result you pass a result object to callback function in
register.
###client.call(name[,params][,options][,callback])
Makes a call with specified params and options. If there is a callback registered in the system the callback with a result will be returned.
name: name of the call that should be invoked remotely.params: parameters of the call that will be passed to the remote consumer.options: options that define the behaviour (like roles and routes) of the call. Allow to customize the call andcallback: callback function that will be invoked when the remote consumer replies with a result.
Here is an example of client.call usage:
sender.call('getRandomNumber', {}, {}, function(result){
console.log(result);
});###client.register(name[, callback])
Registers an RPC by a specified name. You can return a result object to the sender by calling callback.
name: name of the call that the client should reply to.callback: function that could be called in if you want to reply with a result.
Here is an example of client.register that can listen to the call sent in the previous example (getRandomNumber):
client.register('getRandomNumber', function (params, response) {
var number = Math.random();
response(number);
});#Routing
##Path
##ID
##Roles
#Examples
