[英]how to publish mqtt message with retained true in paho on android
[英]MQTT with paho on android, only receiving first message
我將MQTT與paho一起使用,以在Android上接收和發布消息。
我的MQTT初始化有以下代碼。
private void initializeMQTT(){
try{
mqttClient = new MqttClient(
"tcp://broker.hivemq.com:1883",
MqttClient.generateClientId(),
new MemoryPersistence()
);
mqttClient.connect();
mqttConnected = mqttClient.isConnected();
mqttClient.subscribe("testtopic/listen",1);
mqttClient.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) { //Called when the client lost the connection to the broker
}
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
mqttPayload = topic + ": " + Arrays.toString(message.getPayload());
mqttAnswer.setPayload(mqttPayload.getBytes());
mqttClient.publish("testtopic/publish",mqttAnswer);
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {//Called when a outgoing publish is complete
messageInfoTest = "message was sent";
}
});
}
catch(MqttException e){
}
}
我只想接收收到的消息,然后將其發送回其他地方作為測試。
現在發生的事情是我第一次收到有關testtopic / receive主題的文章。 我似乎沒有發表任何東西。 而且,如果我嘗試向testtopic / receive發送另一條消息,則它永遠不會在我的android上接收。
有人知道我目前缺少什么嗎?
謝謝!
我只是遇到了同樣的問題,在調試PAHO之后發現,必須從調用messageArrived(...)回調的線程之外的其他線程調用client.publish。 無法從messageArrived(...)回調代碼中調用client.publish(...),因為它會導致死鎖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.