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 |
Rx.Subscription
messageSubscriber.subscribe(subscriber) ⇒ 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 |
Object
MessageEmitter : Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
next | function |
Function which emits the message function(message) {}
|
Object
Message : 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