【发布时间】:2017-11-08 17:14:27
【问题描述】:
我在玩 MQTT 和 MQTT.js。我正在运行一个 MQTT 代理,现在我想订阅多个主题。一个话题没问题,但多个话题。
我有这两个主题:
'sensor/esp8266-1/humidity'
'sensor/esp8266-1/temperature'
我用这段代码订阅了这两个主题
var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://10.0.0.18');
client.subscribe('sensor/esp8266-1/humidity');
client.subscribe('sensor/esp8266-1/temperature');
client.on('message', function(topic, message, packet) {
console.log(packet)
});
使用此代码,console.log 会返回以下内容
Packet {
cmd: 'publish',
retain: false,
qos: 0,
dup: false,
length: 35,
topic: 'sensor/esp8266-1/temperature',
payload: <Buffer 32 31 2e 32 30> }
Packet {
cmd: 'publish',
retain: false,
qos: 0,
dup: false,
length: 32,
topic: 'sensor/esp8266-1/humidity',
payload: <Buffer 34 31 2e 30 30> }
这看起来第一个很好,但是我怎样才能从中得到温度/湿度数据呢?
我用这个试过了
console.log(packet.payload.toString())
但现在我每次都得到温度和湿度,没有它我知道数字是什么意思。
最后,我想用正确的数据填充两个变量(温度/湿度)。稍后我想连接这两个变量并将它们存储到 SQL 数据库中。
【问题讨论】:
-
“代码不是很实用”是什么意思。该代码订阅了 2 个主题,这正是您要求它做的事情
-
你也读过文档吗?如何订阅多个主题非常清楚,甚至提供了 3 种不同的方式来做到这一点
-
是的,但我找不到东西,你在哪里找到的?
-
npmjs.com/package/… 你还没有回答第一个问题
-
是的,我已经看到了,但是如何读取每个有效负载包?
标签: javascript mqtt iot