https://github.com/FredericHeem/rabbitmq-pubsub
RabbitMQ Publisher Subscriber in Node.js
https://github.com/FredericHeem/rabbitmq-pubsub
Last synced: 11 months ago
JSON representation
RabbitMQ Publisher Subscriber in Node.js
- Host: GitHub
- URL: https://github.com/FredericHeem/rabbitmq-pubsub
- Owner: FredericHeem
- Created: 2015-05-13T20:00:06.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2019-09-01T20:55:54.000Z (almost 7 years ago)
- Last Synced: 2024-11-20T06:04:06.994Z (over 1 year ago)
- Language: JavaScript
- Size: 39.1 KB
- Stars: 12
- Watchers: 3
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
> RabbitMQ Publisher Subscriber
A promise based API on top of [ampqlib](http://www.squaremobius.net/amqp.node/).
[![Build Status][travis-image]][travis-url]
[](https://codeclimate.com/github/FredericHeem/rabbitmq-pubsub/coverage) [](https://codeclimate.com/github/FredericHeem/rabbitmq-pubsub) [](https://coveralls.io/github/FredericHeem/rabbitmq-pubsub?branch=master) [![NPM version][npm-image]][npm-url]
[![Dependency Status][daviddm-image]][daviddm-url]
## Install
```sh
$ npm install --save rabbitmq-pubsub
```
## Usage
### Publisher
```js
var Publisher = require('rabbitmq-pubsub').Publisher;
var publisherOptions = {
exchange: 'user',
type: 'topic',
url: 'amqp://localhost'
};
var publisher = new Publisher(publisherOptions);
publisher.start()
.then(function() {
publisher.publish('myRoutingKey', 'Ciao');
})
```
### Subscriber
```js
var Subscriber = require('rabbitmq-pubsub').Subscriber;
var subscriberOptions = {
exchange: 'user',
queueName: 'user',
routingKeys:['user.regiser', 'user.resetpassword']
};
var subscriber = new Subscriber(subscriberOptions);
function onIncomingMessage(message) {
debug('onIncomingMessage ', message.fields);
assert(message);
assert(message.content);
assert(message.content.length > 0);
subscriber.ack(message);
//subscriber.nack(message);
};
subscriber.start(onIncomingMessage)
```
## Test
Make sure the rabbitmq server is running locally before running the test
$ npm test
## License
MIT © [Frederic Heem](https://github.com/FredericHeem)
[npm-image]: https://badge.fury.io/js/rabbitmq-pubsub.svg
[npm-url]: https://npmjs.org/package/rabbitmq-pubsub
[travis-image]: https://travis-ci.org/FredericHeem/rabbitmq-pubsub.svg?branch=master
[travis-url]: https://travis-ci.org/FredericHeem/rabbitmq-pubsub
[daviddm-image]: https://david-dm.org/FredericHeem/rabbitmq-pubsub.svg?theme=shields.io
[daviddm-url]: https://david-dm.org/FredericHeem/rabbitmq-pubsub