3.0.1 • Published 5 years ago

amqp-poster v3.0.1

Weekly downloads
14
License
MIT
Repository
github
Last release
5 years ago

AMQPPoster

A library for building communication between microservices. It has simple and small API. It works with amqplib and oriented to RabbitMQ.

Installation

npm install amqp-poster

API

Instance

const Poster = require('amqp-poster');

(async () => {
	const poster = new Poster(options);
	
	await poster.init();
})();

options

{
	name: 'TestService',
	uid:  'inst1',
	subscribe: [{
		exchange:       '',
		oncePerService: true
	}],
	prefetch: 10,
	server: {
		port:     5672,
		hostname: 'localhost',
		username: 'guest',
		password: 'guest'
	}
}
keyrequiredtypedescription
nametruestringService name. Also it is queue name for listening
uidstringString to identify owned queues
subscribearrayCollection of exchanges to subscribe
subscribe[].exchangetruestringName of exchange to subscribe
subscribe[].oncePerServicebooleanApply round robin to messages for one service by name (default false)
prefetchintegerHow many messages process at one time (default 1)
servertruestringConnection url like 'amqp://guest:guest@localhost:5672'
servertrueobjectObject of connection config. May have next keys: protocol, hotname, port, username, password, locale, frameMax, heartbeat, vhost

Send messages

try {
	let resp = await poster.send('ServiceName', reqObj)
	// some logic
} catch (err) {
	// Handle error
}

reqObj - object or other variable to send

respObj - response object

err - error from respond-side

Message Handler for incoming messages

poster.setMessageHandler(async (reqObj) => {
	// some logic
	
	// throw new Error('Some error');
	// or
	
	return respObj;
});

reqObj - object or other variable was sent

respObj - object or other variable to send as answer. Can be Promised value

Publish broadcast message

await poster.publish('ExchangeName', reqObj);

Handle broadcast messages

poster.setBroadcastHandler(function (reqObj) {
	// some logic
});
3.0.1

5 years ago

3.0.0

5 years ago

2.1.2

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago