1.0.0-2-dev • Published 5 years ago

promise-rabbitmq-rpc v1.0.0-2-dev

Weekly downloads
-
License
ISC
Repository
github
Last release
5 years ago

RabbitMQ RPC

This library still under development, please don't use for production use

Thanks to

inspired by: kumangxxx visit the repo

Description

This is a simple helper library to manage use RABBITMQ as RPC.

Installation

$ npm install --save rabbitmq-rpc

How to use

As Server

'use strict';

const {Server} = require('promise-rabbitmq-rpc');

const rpcServer = new Server({
   uri_connect: "amqp://root:root@localhost:5672/",
   exchange: {name:"rpc", type: "topic"}
});

// Subscribe success
rpcServer.subscribe('rpc.test', (stringBody, callback) => {
    var users = [{id: 0, email: 'someemail'}];
    callback(null, JSON.stringify(users)); 
});

// Subscribe error
rpcServer.subscribe('rpc.test2', (stringBody, callback) => {
    try {
        var users = [{id: 0, email: 'someemail'}];
        throw new Error("ada error");
        return callback(null, JSON.stringify(users));    
    } catch (error) {
        return callback({code:0, message: error.message}, null);
    }

});

// Subscribe when timeout
rpcServer.subscribe('rpc.test3', (stringBody, callback) => {
    setTimeout(() => {
        var users = [{id: 0, email: 'someemail'}];
        callback(null, JSON.stringify(users));
    }, 6000)
});

rpcServer.listen();

As Client

const {Client} = require('promise-rabbitmq-rpc');

const client = new Client({
    uri_connect: "amqp://root:root@localhost:5672/",
})

const test = async () => {
    const getData = await client.publish('rpc.test3', "hallo");
    console.log(getData)
}

test();

1.0.0-2-dev

5 years ago

1.0.0-2

5 years ago

1.0.0-1

5 years ago

1.0.0

5 years ago