0.0.1 • Published 11 years ago
amqparty v0.0.1
AMQParty
All I wanted was to build a great microservices using RabbitMQ. but I can't understand all these terms... and all this boilerplate.. waaaa...
So lets party.
Installing
npm install --save amqpartyUsing
const amqparty = require('amqparty');
// Just connect with the amqp library settings
amqparty.connect({ ...amqpProperties }).then(() => {
console.log("Connected..");
const send = amqparty.sender({ exchange: 'joe', name: 'userInfo' });
send({
some: 'data',
iWould: 'like to send'
}).then(data => {
console.log('got myself: ', data);
}).catch(err => {
console.error('oh noes: ', err);
});
});Handling data in a service
const { connect, handle } = require('amqparty');
const listen = () => {
console.log("Started...");
handle({
exchange: 'joe',
name: 'userInfo'
}, (data, resolve, reject) => {
// Do your thing here...
resolve({
heyYou: 'ohai'
});
});
};
connect({ ...amqProperties }).then(listen);How it works
sender
- creates a queue('joe', 'userInfo')
- returns a function that:
- generates a uuid
- add a subscriber to the subscribers object:
- will call the callback
- unbind the queue
- remove the subscriber from the subscribers object
- binds the queue to
userInfo.response.${uuid} - sends data
handle({ exchange: 'joe', name: 'userInfo' }, callback...)
creates a queue (userInfo) that binds to userInfo.request