如何在 Paho MQTT JavaScript API 的 onMessageArrived(message) 函数中提取多个主题的值?

物联网 MQTT eclipse-iot
2021-06-11 07:27:20

我使用Paho MQTT JavaScript API创建了一个发布者脚本, 它将值发布到两个主题MyHome/TempMyHome/Hum脚本已成功运行并将数据发布到CloudMQTT代理。在我的订阅者脚本中,我订阅了这两个主题并在控制台中打印它们,如下所示:

function onConnect() {
  console.log("onConnect");
  client.subscribe("MyHome/Temp");
  client.subscribe("MyHome/Hum");
}

function onMessageArrived(message) { 
  console.log(message.destinationName +" : "+ message.payloadString);
}

它正在打印主题名称和相应的值。现在我想使用 message.payloadString 提取两个主题的值并存储在变量中,如下所示:

function onMessageArrived(message) { 
  var temp = message.payloadString;
  var hum = message.payloadString;
  ...
}

但我只获得了两个变量的价值,即最后一个话题“嗡嗡声”的价值。任何人都可以帮我解决这个问题。

1个回答

onMessageArrived 将针对到达的每条消息分别调用,因此如果有效负载仅包含一个值,那么您一次只能获得一个值。

您需要在onMessageArrived回调中包含 if 语句以确定消息到达的主题,然后设置相应的值。