Web 消息总线:JetBus

dgy7 10年前

Jet 是一个用于 Web 的轻量级和实时的消息总线。支持浏览器和 Node.js node-jet,提供 Lua 版本 lua-jet 和基于 Arduino 的版本 Arduino-Jet。

示例代码:

var jet = require('node-jet');     var peer = new jet.Peer({    url: 'ws://jet.nodejitsu.com:80'  });     peer.connect().then(function() {    console.log('peer is connected to daemon');  });     var machineName = new jet.State('machine/name', 'animal');  machineName.on('set', function(newName) {    setMachineName(newName); // does something appropriate  });     peer.add(machineName).then(function() {    console.log('machine/name has been added to daemon');  }).catch(function(err) {    console.log('could not add machine/name to daemon', err);  });     // add a state  var cpuLoad = new jet.State('cpu/load', readCpuLoad());     peer.add(cpuLoad).then(function() {    // async post new value    setTimeout(function () {      cpuLoad.value(readCpuLoad());    },3000);  });

添加方法:

// add a method  var greet = new jet.Method('greet');  greet.on('call', function(name) {      if (name.first === 'John') {        throw 'John is a bad guy!';      }      var greeting = 'Hello ' + name.first + ' ' + name.last;      console.log(greeting);      return greeting;  });     peer.add(greet);

项目主页:http://www.open-open.com/lib/view/home/1432199884208