https://github.com/daack/nsq-rocket
Simple framework to handle request response pattern on nsq.io
https://github.com/daack/nsq-rocket
Last synced: about 1 month ago
JSON representation
Simple framework to handle request response pattern on nsq.io
- Host: GitHub
- URL: https://github.com/daack/nsq-rocket
- Owner: daack
- Created: 2016-11-05T17:02:34.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-12-01T08:42:21.000Z (over 9 years ago)
- Last Synced: 2026-05-10T09:20:50.732Z (about 2 months ago)
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/nsq-rocket
- Size: 18.6 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NSQ Rocket :rocket:
Simple framework to handle request response pattern on nsq.io
* [Install](#install)
* [Example](#example)
* [API](#api)
* [Events](#events)
To install nsq-rocket, simply use npm:
```
npm install nsq-rocket --save
```
```javascript
var Rocket = require('nsq-rocket');
var rocket = Rocket({
serviceId: 'id',
loggerLevel: 'info',
writer: {
//nsqjs writer configuration
host: '127.0.0.1',
port: 4150
},
reader: {
//nsqjs reader configuration
lookupdHTTPAddresses: '127.0.0.1:4161'
}
});
rocket
.topic('sample_topic')
.landing('test_channel', 'key', function(msg, done) {
console.log(msg.content)
done(null, 'reply')
})
.landing('test_channel', {pattern: 'object'}, function(msg, done) {
console.log(msg.content)
done(null, 'reply')
})
//Default cb for this topic if no key found
.default(function(msg, done) {
console.log(msg.content)
done(null, 'reply')
})
.topic('change_topic')
//No key landing
.landing('test_channel', function(msg, done) {
console.log(msg.content)
done(null, 'reply')
});
rocket
.topic('sample_topic')
.launch('message', 'key', function(err, res) {
if (err) throw new Error(err)
console.log(res.content)
res.finish()
})
.launch('message', {pattern: 'object'}, function(err, res) {
if (err) throw new Error(err)
console.log(res.content)
res.finish()
})
//No Routing Key
.launch('message', function(err, res) {
if (err) throw new Error(err)
console.log(res.content)
res.finish()
})
```
* Rocket()
* instance.topic()
* instance.landing()
* instance.launch()
* instance.default()
-------------------------------------------------------
### Rocket([opts])
Creates a new instance of Rocket.
Options are:
* `serviceId`
* `loggerLevel` ['silent', 'info', 'warn', 'error', 'fatal']
* `reader` (nsqjs reader)
* `writer` (nsqjs writer)
-------------------------------------------------------
### instance.topic(topic)
Change the current topic
-------------------------------------------------------
### instance.landing([channel, pattern, cb])
Set a new listener for NSQ
* `channel`, you can put your cb here if you want a random channel and no pattern
* `pattern`, you can put your cb here if you want no pattern
-------------------------------------------------------
### instance.launch(message,[pattern, cb])
Publish a new message to NSQ
* `pattern`, publish with a specific pattern
* `cb`, if you want listen for reply
-------------------------------------------------------
### instance.default(cb)
Set a default cb for the current topic
-------------------------------------------------------
### instance.reader.on(event, data)
* discard -> message
* error -> error
* connected -> {host: host, port: port}
* closed -> {host: host, port: port}
* replier_error -> error
-------------------------------------------------------
### instance.writer.on(event, data)
* ready
* closed
* error -> error