【发布时间】:2021-08-24 09:12:03
【问题描述】:
当客户端订阅多个主题时,是否可以使用与 paho python 中使用的message_callback_add 类似的概念(在 javascript 中)来使用多个回调?我在onMessageArrived() 中看到了if 条件的使用,但我想知道是否存在更有效和更干净的方式?
var mqtt; // MQTT variable/object
var reconnectTimeout = 5000; // 5 seconds for the reconnectTimeout
var host="localhost"; // MQTT bridge IP
var port=8083; // MQTT bridge port
MQTTconnect(); // Initialise the MQTT connections
function MQTTconnect(){
console.log("mqtt connecting to " + host + ":" + port);
mqtt = new Paho.MQTT.Client(host, port, "client_test");
var options = {
timeout: 100,
onSuccess: onConnect,
onFailure: onFailure,
};
mqtt.onMessageArrived = onMessageArrived;
mqtt.connect(options); // connect
}
function onConnect(){
console.log("Mqtt Connected - Subscribe to the topics");
mqtt.subscribe("topic1/a");
mqtt.subscribe("topic2/b");
}
function onFailure(message){
console.log("Connection attempt to MQTT " + host + " failed");
setTimeout(MQTTconnect, reconnectTimeout);
}
function onMessageArrived(msg){
if (msg.destinationName == "topic1/a"){
console.log("Topic1: ", msg.payloadString);
}
else if (msg.destinationName == "topic2/b"){
console.log("Topic2: ", msg.payloadString);
}
}
【问题讨论】:
-
那里似乎没有办法实现它。我目前正在使用开关盒。
标签: javascript mqtt paho