mqtt-client-node
v2.0.7
Published
MQTT Client
Downloads
3
Readme
mqtt-client-node
介绍
mqtt-client-node基于MQTT协议,按照定义的协议接入总线,实现订阅和发布的功能。使用mqtt-client-node需在智能网关后台 管理平台注册应用。
协议规则
topic: '/appToken/tar_appToken/channel/cmd/#'
| key | value | | :------------- |:-------------| | 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