第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將消息發(fā)布到代理之后,MQTT客戶端未收到確認(rèn)

將消息發(fā)布到代理之后,MQTT客戶端未收到確認(rèn)

肥皂起泡泡 2021-04-11 16:37:11
我的問(wèn)題是,當(dāng)我想響應(yīng)到達(dá)消息時(shí),我沒(méi)有從經(jīng)紀(jì)人那里獲得遞送令牌,但消息到達(dá)了經(jīng)紀(jì)人。我可以在日志中看到它。所以我的問(wèn)題是如何通過(guò)發(fā)布對(duì)收到的消息進(jìn)行響應(yīng)?這是我的方式,它不起作用...public void setMqttCallback() {        mqttClient.setCallback(new MqttCallback() {            @Override            public void connectionLost(final Throwable throwable) {                System.out.println("Lost connection to Broker because of: " + throwable.getMessage());            }            @Override            public void messageArrived(final String topic, final MqttMessage mqttMessage) throws Exception {                System.out.println("Received on " + topic + ": " + new String(mqttMessage.getPayload()));                topics = new Topics();                //Answer to arriving messages (Logic)                if (topic.equals(topics.getVehicleNavLandmarkInfo(Mqtt.VIN_ID))) {                    landmarks = new Landmarks();                    MqttMessage message = new MqttMessage(landmarks.getLandmarks().getBytes());                    message.setQos(2);                    System.out.println("Sending on " + topic + ": " + landmarks.getLandmarks());                                        mqttClient.publish(topics.getBackendNavLandsmarks(Mqtt.VIN_ID), message);                }                if (topic.equals(topics.getVehicleNavDestination(Mqtt.VIN_ID))) {                    routing = new Routing(49.0000, 8.0000, "A");                    MqttMessage message = new MqttMessage(routing.getShortestPath().getBytes());                    message.setQos(2);                    System.out.println("Sending on " + topic + ": " + routing.getShortestPath());                                        mqttClient.publish(topics.getBackendNavRoute(Mqtt.VIN_ID), message);                }            }            @Override            public void deliveryComplete(final IMqttDeliveryToken iMqttDeliveryToken) {                System.out.println("Delivered Message: " + iMqttDeliveryToken.toString());            }        });    }
查看完整描述

1 回答

?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊

messageArrived方法正在阻止,因此您不能再嘗試使用相同的mqttClient連接來(lái)發(fā)布消息。您需要使用另一個(gè)與代理具有自己連接的線程。

如果是一次性的情況,那么您可以啟動(dòng)一個(gè)新線程并執(zhí)行其中的所有操作,但是如果您的應(yīng)用程序?qū)⒉粩嗟貙⑾l(fā)布到到達(dá)的消息中,那么最好啟動(dòng)一個(gè)線程,連接到代理然后等待信息從messageArrived方法傳遞。


查看完整回答
反對(duì) 回復(fù) 2021-04-28
  • 1 回答
  • 0 關(guān)注
  • 537 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)