1.0.0 • Published 7 years ago

nsq-rocket v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

NSQ Rocket :rocket:

Simple framework to handle request response pattern on nsq.io

Install

To install nsq-rocket, simply use npm:

npm install nsq-rocket --save

Example

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()
})

API

  • Rocket()
  • instance.topic()
  • instance.landing()
  • instance.launch()
  • instance.default()

Rocket(opts)

Creates a new instance of Rocket.

Options are:


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

Events

  • reader
  • writer

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
1.0.0

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.0

7 years ago

0.1.0

7 years ago