簡體   English   中英

在Android上使用Paho的MQTT,僅接收第一條消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM