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);