Java messageArrived从未在mqtt paho客户端中调用
我有一个使用mqtt paho versionMqttConnectOptions.mqtt_version_3_1_1运行的程序。我订阅了主题“device/+/publish”,我的程序会收到来自硬件的消息。直到昨天它运行良好,今天我遇到了一个问题,代码在订阅行之后没有继续。我将mqttclient对象更改为MqttAsyncClient。并订阅代码为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(
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);
}