remote-procedure-call-rabbitmq

Using RabbitMQ for RPC

Usage no npm install needed!

<script type="module">
  import remoteProcedureCallRabbitmq from 'https://cdn.skypack.dev/remote-procedure-call-rabbitmq';
</script>

README

Rabbitmq RPC

RPC

Rabbitmq

Rabbitmq RPC

Local setup

  • Run rabbitmq using docker command docker run -p 5672:5672 rabbitmq:3.
  • Run npm install remote-procedure-call-rabbitmq
  • Done!

Example for calling RPC Server

import * as amqp from 'amqplib';
import {RPCServer} from 'remote-procedure-call-rabbitmq';

function serviceFn(data: any): Promise<any> {
    console.log('serviceFn called')
    return new Promise((resolve, reject) => {
        resolve(data);
    });
}

const rpcServer = new RPCServer(amqp, {
    hostname: '127.0.0.1',
    port: 5672,
    username: 'guest',
    password: 'guest',
});
rpcServer.setDebug(true);
rpcServer.start().then(() => {
    rpcServer.provide('test', serviceFn);
}).catch(error => {
    console.log(error);
});

Example for calling RPC Client

import * as amqp from 'amqplib';
import {RPCClient} from 'remote-procedure-call-rabbitmq';

const rpcClient = new RPCClient(amqp, {
    hostname: '127.0.0.1',
    port: 5672,
    username: 'guest',
    password: 'guest',
});
rpcClient.setDebug(true);
rpcClient.start().then(() => {
    rpcClient.call('test', {id: 1}).then(console.log).catch(console.log);
});