mqrouter

2.0.1 • Public • Published

MQRouter

NPM Build Status

A tiny router for routing messages by topic name from message queues.


Download

npm install mqrouter

API

Create Router

var router = new Router();
Optionally pass routes object to constructor
var routes = {
  "things/:thing/online": function(message) {
    var topic = message.topic;
    var params = message.params;
    var payload = message.payload;
  }
};
var router = new Router(routes);

Add Route

router.add(topic, payload);

Remove Route

router.remove(topic);

Execute Route

router.execute("things/esp-123/online", true);

Example Usage

var router = new Router({
  "things/:thing/online": function(message) {
    var thing = message.params.thing;
    console.log(`thing ${thing} is ${message.payload.online ? 'online' : 'offline'}`);
  }
});
 
router.add("things/:thing/led", function(message){
  var payload = message.payload;
  var thing = message.params.thing;
  setRgbPwm(thing, payload.r, payload.g, payload.b);
});
 
mqtt.on("message", function(topic, payload) {
  var result = router.execute(topic, payload);
  console.log(result);
});
 
mqtt.subscribe("thing/+/online");
 
mqtt.subscribe("thing/+/led");
 
mqtt.send("thing/esp-123/online", {
  online: true
});
 
mqtt.send("thing/esp-123/online", {
  online: false
});
 
mqtt.send("thing/esp-123/led", {
  r: 128,
  g: 128,
  b: 128,
});

Readme

Keywords

Package Sidebar

Install

npm i mqrouter

Weekly Downloads

1

Version

2.0.1

License

ISC

Last publish

Collaborators

  • joeflateau