Модуль для легкой и удобной работы с RabbitMQ Базируется на модуле https://github.com/squaremo/amqp.node
На данный момент работа ведется только с дефолтной ('') точкой обмена
npm install git+ssh://[email protected]:KealPub/node-rabbit-lite.git
var RabbitMQ = require("rabbitmq").createConnect("amqp://rabbit-mq-host").RabbitMQ;
var testQueue = new RabbitMQ("test.queue");
testQueue.subscribe(function(message){
console.log(message);
}, function(){
testQueue.publish({test: "test"});
});
Создает подключение до Rabbit. Используется метод connect
из amqp.node
Подробнее: http://squaremo.github.io/amqp.node/doc/channel_api.html#toc_1
Создание обработчика очереди. name
строка имени очереди с которой будет происходить работа.
options
объект опций очереди, применятеся для assertQueue
, подробней можно прочитать тут: http://squaremo.github.io/amqp.node/doc/channel_api.html#toc_16
По умолчанию выставленно durable: true
autoDelete: true
.
connect
кастомный объект канала: http://squaremo.github.io/amqp.node/doc/channel_api.html#toc_10
По умолчанию используется общий для всех
Подписка на очередь.
messageHandler
является функцией, которая принимает аргумент message
. message
- Объект new Message()
. Отрабатывает при поступлении нового сообщения в очередь.
callback
- функция, которая отрабатывает при успешной подписки на очередь.
needAck
- Boolean, указывает на то, нужно ли очереди дожидаться подтверждения принятия сообщения.
Отписывается от текущей очереди
Публикует сообщение в очередь.
Использует метод sendToQueue
библиотеки amqp.node
message
- сообщение для публикации, может быть как объектом (автоматически сконвертится в JSON), так и любым другим типом, с которым работает Buffer
options
- объект опций при публикации, передается в sendToQueue
, подробнее http://squaremo.github.io/amqp.node/doc/channel_api.html#toc_27
Возвращает объект канала
Возвращает открыто ли подключение до Rabbit. true или false.
Создание объекта сообщения.
message
- Объект сообщения из библиотеки amqp.node (http://squaremo.github.io/amqp.node/doc/channel_api.html#toc_29)
connect
- Объект кастомного канала (то же что и в RabbitMQ)
needAck
- Boolean, следует ли подтвержать получение этого сообщения
Тело сообщения
Дополнительные заголовки сообщения (см. документацию к протоколу AMQP)
Подтверждение получения сообщения
Ответ на сообщение, если в заголовке сообщения указан параметр replyTo
(см. документацию к RabbitMQ#publish()
). Если необходимо, автоматически подтверждает прием сообщения (ack
)
Срабатывет при ответе на сообщение.
Example:
//...
message.on("reply", function(){
console.log("Reply!")
});
message.reply("I'am reply");
TODO:
- Реализовать методы управления очередью, такие как удаление, изменение параметров и т.д.
- Сделать возможность мульти канального подключения
- Сделать работу с разными точками обмена