2014-10-18 47 views
0

我正在使用Eclipse中的MQTT应用程序。我之前使用mqtt-dashboard作为公共代理,并能够看到我在仪表板上发布的消息。出于某种原因,该网站已关闭,所以我转而使用蚊子。我的代码是相同的,但我仍然无法将消息发布给此代理。我的代码如下:MQTT - Java应用程序无法看到发布的消息

public static void main(String[] args) { 

    String topic  = "home automation systems"; 
    String content  = "I am a test message"; 
    int qos    = 2; 
    String broker  = "tcp://test.mosquitto.org:1883"; 
    String clientId  = "home automation"; 
    MemoryPersistence persistence = new MemoryPersistence(); 
    try { 
      MqttClient sampleClient = new MqttClient(broker, clientId, persistence); 
      MqttConnectOptions connOpts = new MqttConnectOptions(); 
      connOpts.setCleanSession(true); 
      System.out.println("Connecting to broker: "+broker); 
      sampleClient.connect(connOpts); 
      System.out.println("Connected"); 
      System.out.println("Publishing message: "+content); 
      MqttMessage message = new MqttMessage(content.getBytes()); 
      message.setQos(qos); 
      sampleClient.publish(topic, message); 
      System.out.println("Message published"); 
      sampleClient.disconnect(); 
      System.out.println("Disconnected"); 
      System.exit(0); 
     } 
     catch(MqttException me) { 
      System.out.println("reason "+me.getReasonCode()); 
      System.out.println("msg "+me.getMessage()); 
      System.out.println("loc "+me.getLocalizedMessage()); 
      System.out.println("cause "+me.getCause()); 
      System.out.println("excep "+me); 
      me.printStackTrace(); 
     } 
} 

}

我想看到这个仪表板所发布的消息:http://test-mosquitto.herokuapp.com/ 却看不到我的消息。请纠正我,如果我失去了一些东西。我对它很陌生。谢谢。

回答

0

如果您希望在该“仪表板”上显示一条消息,则需要使用保留标志集进行发布 - 该Web应用程序只能显示保留的消息,而不是常规的临时消息。

+0

我不熟悉保留和短暂的消息。这是一个与MQTT相关的概念吗? – 2014-10-21 01:19:29

+0

是的,保留的消息是MQTT的一项功能。 – 2014-10-23 23:02:58

相关问题