exchange-pubsub
A helper module to simplify @google-cloud/pubsub
Installation
npm i --save exchange-pubsub
Options
- log = logger to use (defaults to console)
- defaultSubscribeOptions = (same as optional per-subscription options)
- raw - provide full message to listener. Default = false (just the data)
- autoAck - automatically acknowledge messages on return from listener. Default = true
- subNameWithTopic - automatically add topic name to subscription name. Default = true
- connectionInterval - automatically resubscribe every xx seconds of inactivity. 0 = off, Default = 1hr.
- ignoreKeyFilename = don't set default pubSub keyFilename option
- pubSub = see @google-cloud/pubsub
- projectId will attempt to use process.env.GCLOUD_PROJECT if not set
- keyFilename will set to 'lib/gcloud-auth.json' if not set and ignoreKeyFilename is not set
Usage
const pubSub = require('exchange-pubsub');
pubSub.setOptions({
log: console,
defaultSubscribeOptions: {
raw: false,
autoAck: true,
},
});
pubSub.subscribe('myTopic', (msgData => {
console.log(msgData);
}));
pubSub.publish('myTopic', 'my message')
.then(() => { })
.catch(e => { });
The default usage uses the topic as the subscription name which means
it will be processed by a single subscriber (if multiple subscribers use the same name).
You can also specify the name manually, or have a random name generated:
pubSub.subscribe('myTopic', 'subscription name', {autoAck: false, raw: true}, (msg => {
console.log(msg.data);
msg.ack();
}));
pubSub.subscribe('myTopic', true, (msgData => {
console.log(msgData);
return Promise.reject();
}));
Source: demo.js