使用 NODE-RED 连接外部 MQTT 发布者
connecting external MQTT publisher with NODE-RED
在我当前的项目中,我正在尝试将我的外部温度传感器连接到 NODE-RED。
我已将 MQTT 插入外部传感器。此传感器正在发布具有 tempMeasurement
个主题的数据。 MQTT发布者配置如下:
public class MQTTPublisher {
// public static final String BROKER_URL =
// "tcp://broker.mqttdashboard.com:1883";
public static final String BROKER_URL = "tcp://test.mosquitto.org:1883";
private MqttClient client;
public MQTTPublisher() {
try {
client = new MqttClient(BROKER_URL, MqttClient.generateClientId(),
new MemoryPersistence());
client.connect();
} catch (MqttException e) {
e.printStackTrace();
}
}
public void publish(String topicName, int qos, byte[] payload)
throws MqttException {
final MqttTopic topic = client.getTopic(topicName);
final MqttMessage message = new MqttMessage(payload);
topic.publish(message);
System.out.println("Published data. Topic: " + topic.getName()
+ " Message: " + payload);
}
}
在 Node-RED 的另一端,我创建了订阅 "tempMesurement" 的 MQTT 节点。 NODE-RED中MQTT节点配置如下:
我的问题是 MQTT 订阅者节点显示 disconnected 消息,如上图所示。您能否提出建议 - NODE-RED 中的配置有什么问题?我该如何解决这个问题?
如评论中所述,您需要从配置屏幕中的服务器名称中删除 tcp://
在我当前的项目中,我正在尝试将我的外部温度传感器连接到 NODE-RED。
我已将 MQTT 插入外部传感器。此传感器正在发布具有 tempMeasurement
个主题的数据。 MQTT发布者配置如下:
public class MQTTPublisher {
// public static final String BROKER_URL =
// "tcp://broker.mqttdashboard.com:1883";
public static final String BROKER_URL = "tcp://test.mosquitto.org:1883";
private MqttClient client;
public MQTTPublisher() {
try {
client = new MqttClient(BROKER_URL, MqttClient.generateClientId(),
new MemoryPersistence());
client.connect();
} catch (MqttException e) {
e.printStackTrace();
}
}
public void publish(String topicName, int qos, byte[] payload)
throws MqttException {
final MqttTopic topic = client.getTopic(topicName);
final MqttMessage message = new MqttMessage(payload);
topic.publish(message);
System.out.println("Published data. Topic: " + topic.getName()
+ " Message: " + payload);
}
}
在 Node-RED 的另一端,我创建了订阅 "tempMesurement" 的 MQTT 节点。 NODE-RED中MQTT节点配置如下:
我的问题是 MQTT 订阅者节点显示 disconnected 消息,如上图所示。您能否提出建议 - NODE-RED 中的配置有什么问题?我该如何解决这个问题?
如评论中所述,您需要从配置屏幕中的服务器名称中删除 tcp://