2.0.7 • Published 6 years ago

mqtt-client-node v2.0.7

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

mqtt-client-node

介绍

mqtt-client-node基于MQTT协议,按照定义的协议接入总线,实现订阅和发布的功能。使用mqtt-client-node需在智能网关后台 管理平台注册应用。

协议规则

topic: '/appToken/tar_appToken/channel/cmd/#'

keyvalue
appToken应用的appToken
tar_appToken目标appToken
channel目前只有'$iot','$manager'
cmd'$update','$notify','$req','$rreq','$resp','$rresp'
#自定义层,根据不同的channel产生不同的结果,列:channel='$iot',自定义层可能为'/iotId/attribute/messageId'或'/iotId/attribute'。

安装

npm install mqtt-client-node --save

例子

const App = require('mqtt-client-node').app;
const app = new App('appToken','appScrect');
//如果你只想订阅有关$iot的消息
//const app = new App('appToken','appScrect','$iot');

app.connect('mqtt://localhost').then(() => {
  console.log('connect success');

  app.req({tar: 'tar_appToken', channel: '$iot', payload:{value: 'test'}}).then((result) => {
    console.log(result);
  });
});

const Service = require('mqtt-client-node').service;
const service = new Service('appToken','appScrect');

service.connect('mqtt://localhost').then(() => {
  console.log('connect success');

  service.notify({tar: 'tar_appToken', src: 'src_appToken', channel: '$iot', payload:{value: 'test'}}).then((result) => {
    console.log(result);
  });
});

api

  • init()
  • connect()
  • app.req()
  • app.rresp()
  • app.update()
  • app.soeIotAttrs()
  • service.rreq()
  • service.resp()
  • service.notify()

init(appToken, appScrect, options)

对连接mqtt总线验证的数据进行初始化。

  • appToken 注册应用的appToken
  • appScrect 注册应用的appScrect
  • options 配置项。这个是选择项。
    • channel 需要订阅的对象$iot/$manager
    • topicRule topic规则
    • subscribePatterns 订阅对象

connect(address, options)

连接mqtt总线,address为总线地址。

  • address 总线地址
  • options 注册应用的appScrect。这个是选择项。

app.req({tar, channel, params, payload, options})

app向service发送请求,获取tar的返回的数据。

  • tar 目标应用的appToken
  • channel '$iot','$manager'
  • params '$iot': {'iotId','attribute'}, '$manager': {'class','action'}
  • payload 传输的数据体。这个是选择项。
  • options {timeout: 1000}。这个是选择项。

app.rresp({tar, channel, params, messageId, payload, error})

app向service发送tar的需要的数据。

  • tar 目标应用的appToken
  • channel '$iot','$manager'
  • params '$iot': {'iotId','attribute'}, '$manager': {'class','action'}
  • messageId service发送rreq生成的messageId
  • payload 传输的数据体。这个是选择项。
  • error 错误信息 eg.'error message'。这个是选择项。

app.update({channel, params, payload, error, options}, mqttOptions)

app上报数据给service。

  • channel '$iot','$manager'
  • params '$iot': {'iotId','attribute'}, '$manager': {'class','action'}
  • payload 传输的数据体。这个是选择项。
  • options {type: 's'}。这个是选择项。
  • mqttOptions mqtt.publish配置,见mqtt.publish()。这个是选择项。

app.soeIotAttrs({attrs, params}, mqttOptions)

iot设备上报数据给service。

  • attrs {1: {type: 's', payload: 'aaa'}}
  • params {iotId: 'aaa'}
  • mqttOptions mqtt.publish配置,见mqtt.publish()。这个是选择项。

service.rreq({tar, src, channel, params, payload, options})

service向tar发送rreq请求,获取tar的返回的数据。

  • tar 目标应用的appToken
  • src 发送req请求来源的appToken
  • channel '$iot','$manager'
  • params '$iot': {'iotId','attribute'}, '$manager': {'class','action'}
  • payload 传输的数据体。这个是选择项。
  • options {timeout: 1000}。这个是选择项。

service.resp({tar, src, channel, params, messageId, payload, error})

service向tar发送src返回的数据。

  • tar 目标应用的appToken
  • src rreq接收返回数据来源的appToken
  • channel '$iot','$manager'
  • params '$iot': {'iotId','attribute'}, '$manager': {'class','action'}
  • messageId 接收req来源的messageId
  • payload 传输的数据体。这个是选择项。
  • error 错误信息 eg.'error message'。这个是选择项。

service.notify({tar, src, channel, params, payload, error, options}, mqttOptions)

service向tar发送通知。

  • tar 目标应用的appToken
  • src 来源的appToken
  • channel '$iot','$manager'
  • params '$iot': {'iotId','attribute'}, '$manager': {'class','action'}
  • payload 传输的数据体。这个是选择项。
  • error 错误信息 eg.'error message'。这个是选择项。
  • options {type: 's'}。这个是选择项。
  • mqttOptions mqtt.publish配置,见mqtt.publish()。这个是选择项。

License

MIT

2.0.7

6 years ago

2.0.6

6 years ago

2.0.5

6 years ago

2.0.4

6 years ago

2.0.3

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.0.0

7 years ago