Node.js 中每个 MQTT 主题的不同 `on('message')` 回调
Different `on('message')` callback per MQTT topic in Node.js
我用MQTT.js。是否可以为每个主题定义不同的回调?
例如,我订阅了主题 a
、b
和 c
,并为每个主题创建了一个 on message
回调,如下所示:
client.on('message', 'a', cb)
client.on('message', 'b', cb)
client.on('message', 'b', cb)
如果没有,我该如何解决?欢迎任何解决方案。
不,这是不可能的。
您只需将 if/else
或 switch
块添加到使用主题作为选择器的 on message
回调中。
例如
client.on('message', function(topic, message) {
switch(topic) {
case 'a':
...
break;
case 'b':
...
break;
default:
...
}
})
或将回调函数存储在一个对象中,并使用主题作为键,例如
var callbacks = {}
callbacks["a"] = function(message) {...}
client.on('message', function(topic, message) {
callbacks[topic](message)
})
我用MQTT.js。是否可以为每个主题定义不同的回调?
例如,我订阅了主题 a
、b
和 c
,并为每个主题创建了一个 on message
回调,如下所示:
client.on('message', 'a', cb)
client.on('message', 'b', cb)
client.on('message', 'b', cb)
如果没有,我该如何解决?欢迎任何解决方案。
不,这是不可能的。
您只需将 if/else
或 switch
块添加到使用主题作为选择器的 on message
回调中。
例如
client.on('message', function(topic, message) {
switch(topic) {
case 'a':
...
break;
case 'b':
...
break;
default:
...
}
})
或将回调函数存储在一个对象中,并使用主题作为键,例如
var callbacks = {}
callbacks["a"] = function(message) {...}
client.on('message', function(topic, message) {
callbacks[topic](message)
})