8
我使用paho發送和接收mqtt消息。 到目前爲止,發送消息一直沒有問題,我通過使用蚊子來接收它們。使用PAHO訂閱和閱讀MQTT消息
現在我想通過使用java客戶端來讀取消息,並且我注意到關於接收消息的文檔較少。
我實現了MqttCallback接口,但我仍然無法弄清楚如何閱讀我訂閱的主題的消息。
這是我的源代碼到目前爲止,我可以閱讀使用mosquitto_sub的消息。
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
}
}
嗨,這是行不通的。 ;)'\t @Override \t公共無效messageArrived(字符串主題,MqttMessage消息) \t \t \t拋出異常{ 的System.out.println(消息); \t subClient.disconnect(); \t subClient.close(); \t} – Goot
該代碼現在應該編譯並運行良好,最新的paho 0.4.0代碼 – hardillb
我檢出了最新的paho版本。我嘗試了一些android mqtt客戶端,我可以閱讀主題消息。所以這與我的蚊子配置無關... – Goot