Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java messageArrived从未在mqtt paho客户端中调用_Java_Mqtt_Paho - Fatal编程技术网

Java messageArrived从未在mqtt paho客户端中调用

Java messageArrived从未在mqtt paho客户端中调用,java,mqtt,paho,Java,Mqtt,Paho,我有一个使用mqtt paho versionMqttConnectOptions.mqtt_version_3_1_1运行的程序。我订阅了主题“device/+/publish”,我的程序会收到来自硬件的消息。直到昨天它运行良好,今天我遇到了一个问题,代码在订阅行之后没有继续。我将mqttclient对象更改为MqttAsyncClient。并订阅代码为 mqttClient.subscribe("device/+/publish", 0 , new IMqttMessageListener(

我有一个使用mqtt paho versionMqttConnectOptions.mqtt_version_3_1_1运行的程序。我订阅了主题“device/+/publish”,我的程序会收到来自硬件的消息。直到昨天它运行良好,今天我遇到了一个问题,代码在订阅行之后没有继续。我将mqttclient对象更改为MqttAsyncClient。并订阅代码为

mqttClient.subscribe("device/+/publish", 0 , new IMqttMessageListener() {

                    @Override
                    public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception {
                        // TODO Auto-generated method stub
                        System.out.println(
                                "---------------------------------------------------------------------------------------------------");

                        processMessage(mqttMessage, collarTopic, identity);
                    }
                });
messageArrived也使用MqttCallbackExtended()编写,如

但这在我的程序中从未调用过。我可以在MQTTBox中看到使用相同订阅收到的消息,但在我的程序中看不到


有人能帮忙吗?

您是否尝试过以1或2的QoS订阅?0不保证您会收到消息。`String collarTopic=topic.replace(“/publish”,”);`这种替换的意义是什么?@JacekCz,这是某种内在逻辑。对不起,朋友,这没什么道理。上面的string.toString()似乎是混乱的复制和粘贴。我对整个代码的信任度非常非常低。你确定第一行的语法正确吗?混乱,混乱,混乱
mqttClient.setCallback(new MqttCallbackExtended() {
        @Override
        public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception {
            // TODO Auto-generated method stub

            System.out.println(
                    "---------------------------------------------------------------------------------------------------");
            processMessage(mqttMessage, collarTopic, identity);

        }