@kapitchi/bb-service-message

0.2.0 • Public • Published

bb-service-message

Service messaging

Installation

npm install @kapitchi/bb-service-message

Usage

TODO

API

Classes

MessageEmitterAmqp

AMQP message emitter

Implements MessageEmitter interface.

MessagePublisher

Message publisher

MessageSubscriberAmqp

Message subscriber implementing AMQP (e.g. rabbitmq)

MessageSubscriber

Message subscriber

Implements the MessageEmitter interface

Typedefs

MessageEmitter : Object
Message : Object

MessageEmitterAmqp

AMQP message emitter

Implements MessageEmitter interface.

Kind: global class

new MessageEmitterAmqp(messageEmitterAmqpOpts, amqpConnection)

Param Type
messageEmitterAmqpOpts Object
messageEmitterAmqpOpts.exchange String
amqpConnection Object

messageEmitterAmqp.asyncInit()

Calls connect

Kind: instance method of MessageEmitterAmqp

messageEmitterAmqp.connect()

Creates a channel and an exchange

Kind: instance method of MessageEmitterAmqp

messageEmitterAmqp.next(msg)

Impl of interface MessageEmitter

Kind: instance method of MessageEmitterAmqp

Param Type
msg Message

MessagePublisher

Message publisher

Kind: global class

new MessagePublisher(messagePublisherOpts, messageEmitter)

Param Type
messagePublisherOpts Object
messagePublisherOpts.service string
messageEmitter MessageEmitter

messagePublisher.emit(msg)

Emits the message

Kind: instance method of MessagePublisher

Param Type Default Description
msg Object
msg.type String Message type
msg.data Object The payload
[msg.ts] String now ISO 8601 string

MessageSubscriberAmqp

Message subscriber implementing AMQP (e.g. rabbitmq)

Kind: global class

new MessageSubscriberAmqp(messageSubscriberAmqpOpts, amqpConnection)

Param Type Default Description
messageSubscriberAmqpOpts Object
messageSubscriberAmqpOpts.exchange String
messageSubscriberAmqpOpts.queue String
messageSubscriberAmqpOpts.topics Array Message types to subscribe in format SERVICE.MSG_TYPE e.g. MyService.* subscribes to all MyService messages
[messageSubscriberAmqpOpts.prefetch] Number 1
amqpConnection Object http://www.squaremobius.net/amqp.node/channel_api.html#connect

messageSubscriberAmqp.asyncInit()

Calls connect and start consuming messages consume

Kind: instance method of MessageSubscriberAmqp

messageSubscriberAmqp.connect()

Creates a channel, asserts an exchange, queue, and bind a queue to topics

Kind: instance method of MessageSubscriberAmqp

messageSubscriberAmqp.consume()

Start consuming a messages from the queue

Kind: instance method of MessageSubscriberAmqp

messageSubscriberAmqp.purgeQueue()

Purge queue

Kind: instance method of MessageSubscriberAmqp

messageSubscriberAmqp.deleteQueue()

Delete queue

Kind: instance method of MessageSubscriberAmqp

MessageSubscriber

Message subscriber

Implements the MessageEmitter interface

Kind: global class

new MessageSubscriber(messageSubscriberOpts)

Param Type Default
messageSubscriberOpts Object
[messageSubscriberOpts.requireAck] boolean true
[messageSubscriberOpts.bufferSize] Number 10

messageSubscriber.drop(msg)

Drops the message

Kind: instance method of MessageSubscriber

Param Type
msg Message

messageSubscriber.ack(msg)

Ack the message

Kind: instance method of MessageSubscriber

Param Type
msg Message

messageSubscriber.nack(msg)

Nack the message

Kind: instance method of MessageSubscriber

Param Type
msg Message

messageSubscriber.next(msg)

Receives the message

Kind: instance method of MessageSubscriber

Param Type
msg Message

messageSubscriber.subscribe(subscriber) ⇒ Rx.Subscription

Subscribe to http://reactivex.io/rxjs/ message stream

Kind: instance method of MessageSubscriber
Returns: Rx.Subscription - msg http://reactivex.io/rxjs/class/es6/Subscription.js~Subscription.html

Param Type Description
subscriber Rx.Subscriber http://reactivex.io/rxjs/class/es6/Subscriber.js~Subscriber.html

MessageEmitter : Object

Kind: global typedef
Properties

Name Type Description
next function Function which emits the message function(message) {}

Message : Object

Kind: global typedef
Properties

Name Type Description
type string
service string
ts string ISO 8601 string
data Object

Development

Tests

npm test

Tests / examples currently require rabbitmq to be running on amqp://localhost

Readme

Keywords

none

Package Sidebar

Install

npm i @kapitchi/bb-service-message

Weekly Downloads

0

Version

0.2.0

License

MIT

Unpacked Size

58 kB

Total Files

22

Last publish

Collaborators

  • matuszeman