Ich benutze Paho, um mqtt Nachrichten zu senden und zu empfangen. Bis jetzt war es kein Problem, die Nachrichten zu senden, ich empfange sie, indem ich mosquitto benutze.Abonnieren und lesen MQTT Nachricht mit PAHO
Jetzt möchte ich die Nachrichten mit einem Java-Client lesen und ich bemerkte, dass es weniger Dokumentation über den Empfang der Nachrichten gab.
Ich habe die MqttCallback-Schnittstelle implementiert, aber ich konnte immer noch nicht herausfinden, wie ich eine Nachricht eines Themas lesen kann, das ich abonniert habe.
Dies ist mein Quellcode bisher, ich kann die Nachrichten mit mosquitto_sub lesen.
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;
MqttClient subClient;
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");
subClient = new MqttClient("tcp://192.168.118.11:1883",
"Subscribing");
client.connect();
subClient.connect();
subClient.subscribe("foo");
MqttMessage message = new MqttMessage();
message.setPayload("A single message from my computer fff"
.getBytes());
client.publish("foo", message);
client.disconnect();
client.close();
subClient.disconnect();
subClient.close();
} 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
}
}
Hallo, das funktioniert nicht. ;) '\t @Override \t public void messageArrived (String Thema, MqttMessage Nachricht) \t \t \t throws Exception { System.out.println (Nachricht); \t subClient.disconnect(); \t subClient.close(); \t} – Goot
Dieser Code sollte jetzt kompilieren und läuft gut mit dem neuesten Paho 0.4.0 Code – hardillb
Ich überprüfte die neueste Paho-Version. Ich versuchte ein Android mqtt Client und ich konnte das Thema Nachrichten lesen. Das hängt also nicht mit meiner Moskito-Konfiguration zusammen ... – Goot