我目前正在尝试Thingspeak,它们为开发人员提供了使用MQTT协议订阅数据的功能。
但是当我尝试实现时,即使我不发布任何消息,数据也不会停止订阅。
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
channels/channel/subscribe/fields/field1/key: 2
我的JavaScript代码是:
let client = mqtt.connect('mqtt://mqtt.thingspeak.com', {
username: process.env.MQTT_USERNAME,
password: process.env.MQTT_PASSWORD,
clientId: 'TSC-' + Math.random().toString(16).substr(2, 8) + '-' + Math.random().toString(16).substr(2, 8),
protocolId: 'MQTT',
keepalive: 1,
reconnectPeriod: 100 * 1
})
client.subscribe('channels/channel/subscribe/fields/field1/key', { qos: 0 })
client.on('message', (topic, payload) => {
console.log(`${topic}: ${payload}`)
})
我想念什么吗?还是主机故障?谢谢。
答案 0 :(得分:0)
您似乎可能需要重新连接多次并在每次连接时都进行订阅。首次订阅时,ThingSpeak代理返回最后一个值。