2015-11-20 75 views
1

在我當前的項目中,我嘗試將外部溫度傳感器連接到NODE-RED。將外部MQTT發佈者與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); 
    } 
} 

論節點-RED的另一側,我已經創建MQTT節點,具有訂閱「tempMesurement」。 MQTT節點的在NODE-RED的配置如下:

enter image description here

enter image description here

我的問題是MQTT訂戶節點被示出斷開消息作爲顯示在上述圖中。你能否建議 - NODE-RED中的配置有什麼問題?我該如何解決這個問題?

+1

更新與MQTT服務器配置對話框中的形象問題(所示的,當你點擊鉛筆圖標)。但我認爲你已經把完整的url放在服務器端,而不是'test.mosquitto.org' – hardillb

+0

@hardillb:我已經用配置更新了這個問題。請注意,我沒有對「安全」,「出生信息」進行任何更改,並會顯示「標籤。 – Pankesh

+1

正如@hardillb所說,您不應在代理服務器中包含'tcp://'。它應該連接 – knolleary

回答

1

正如評論所說,你需要刪除TCP:從服務器名稱//在配置屏幕