Subscribe and Read MQTT Message Using PAHO

前端 未结 1 992
悲哀的现实
悲哀的现实 2020-12-08 03:52

I\'m using paho to send and receive mqtt messages. So far it has been no problem to send the messages, I\'m receiving them by using mosquitto.

Now I want to read the

相关标签:
1条回答
  • 2020-12-08 04:21

    You are closing the client down before the broker has time to send the message back.

    Also you don't need 2 instance of the client, you can send and receive with just one.

    I've edited your code a little, it now will continue to run and receive messages until you kill it.

    import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
    import org.eclipse.paho.client.mqttv3.MqttCallback;
    import org.eclipse.paho.client.mqttv3.MqttClient;
    import org.eclipse.paho.client.mqttv3.MqttException;
    import org.eclipse.paho.client.mqttv3.MqttMessage;
    
    public class PahoDemo implements MqttCallback {
    
    MqttClient client;
    
    public PahoDemo() {
    }
    
    public static void main(String[] args) {
        new PahoDemo().doDemo();
    }
    
    public void doDemo() {
        try {
            client = new MqttClient("tcp://192.168.118.11:1883", "Sending");
            client.connect();
            client.setCallback(this);
            client.subscribe("foo");
            MqttMessage message = new MqttMessage();
            message.setPayload("A single message from my computer fff"
                    .getBytes());
            client.publish("foo", message);
        } catch (MqttException e) {
            e.printStackTrace();
        }
    }
    
    @Override
    public void connectionLost(Throwable cause) {
        // TODO Auto-generated method stub
    
    }
    
    @Override
    public void messageArrived(String topic, MqttMessage message)
            throws Exception {
     System.out.println(message);   
    }
    
    @Override
    public void deliveryComplete(IMqttDeliveryToken token) {
        // TODO Auto-generated method stub
    
    }
    
    }
    

    EDIT: added the missing client.setCallback(this)

    0 讨论(0)
提交回复
热议问题