【问题标题】:unable to subscribe paho mqtt java无法订阅 paho mqtt java
【发布时间】:2016-07-27 18:21:57
【问题描述】:

我是 mqtt 的新手。开始我尝试向 mosquitto 代理发布和订阅主题。我能够发布消息。但是我的订阅者没有在听主题,它会在不等待/轮询消息的情况下启动和停止。

这是订阅者代码,

public class MqttSubscriber implements MqttCallback {
private static final String TOPIC = "iot/endpoint";

public static void main(String[] args) {
    new MqttSubscriber().listen();
}

public  void listen() {
    MqttClient client = null;
    try {
        client = MqttClientGenerator.generateSubscriberClient();
        client.connect();
        System.out.println("Fetching messages...");
        client.subscribe(TOPIC);
        client.setCallback(this);
        client.disconnect();
      } catch (MqttException e) {
        e.printStackTrace();
      } catch (Exception e) {
        e.printStackTrace();
    }
}

public void connectionLost(Throwable t) {
    t.printStackTrace();
}

public void deliveryComplete(IMqttDeliveryToken arg0) {

}

public void messageArrived(String topic, MqttMessage message) throws Exception {
    System.out.println("Message received from broker...");
    System.out.println("Received Message: -- ");
    System.out.println(message.getPayload().toString());
}
}

MqttClientGenerator :

public class MqttClientGenerator {
private static final String BROKER_URI = "tcp://localhost:1883";
private static final String CLIENT_ID = "pub";
private static final String SUBSCRIBER_ID = "sub";


private MqttClientGenerator () {}

public static MqttClient generatePublisherClient() throws MqttException{
    //adding timestamp to make client name unique every time
    return new MqttClient(BROKER_URI, CLIENT_ID+new Date().getTime());
}

public static MqttClient generateSubscriberClient() throws MqttException{
    //adding timestamp to make client name unique every time
    return new MqttClient(BROKER_URI, SUBSCRIBER_ID+new Date().getTime());
}
}

我在这里错过了什么?

【问题讨论】:

  • 您的代码看起来是正确的,但有一件事看起来很奇怪,您实际上是在您的客户端上调用了 disconnect 方法,请尝试删除此行
  • 像魅力一样工作:-)。断开订阅者内部的客户端是愚蠢的,不得不作为终结者的一部分移出块。
  • 很高兴为您提供帮助;)我已将其作为答案以使其更清晰

标签: java mqtt paho


【解决方案1】:

尝试删除断开客户端的线路。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多