回调顺序错误?"/>
Nodejs、Mqtt:连接和回调顺序错误?
我想使用 nodejs 的 mqtt 包。无论我在哪里,我都能找到这样的代码示例(来自 github 上的官方文档):
const mqtt = require('mqtt')
const client = mqtt.connect('mqtt://test.mosquitto')
client.on('connect', function () {
client.subscribe('presence', function (err) {
if (!err) {
client.publish('presence', 'Hello mqtt')
}
})
})
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
client.end()
})
我的问题是连接:mqtt.connect() 在回调之前:client.on('connect', ...)。我认为这是错误的顺序。
这不同于实例化客户端的 python 包,然后声明“on connect”和其他回调,然后才使用 client.connect() 方法。
有没有办法像 python 包中那样保证正确的顺序?
回答如下:我不知道 python 包上写的是什么,但是如果我们看官方 Mqtt 码头 正确的顺序是:
- 连接到 mqtt 服务器
- 然后将命令发送到您的客户端订阅了一些主题的 mqtt 服务器
- 然后在我们的节点层上我们添加一些回调(
)来处理传入的消息client.on('message', console.log)
更多推荐
Nodejs、Mqtt:连接和回调顺序错误?
发布评论