在MQTT客户端代码中添加一个回调函数,用于处理订阅后的确认信息。具体实现方法如下:
#include
void messageArrived(MQTT::MessageData& md) {
MQTT::Message &message = md.message;
// add code to handle incoming messages
}
MQTTClient client("wifi", "iot.eclipse.org", 1883, messageArrived);
int main() {
// add code to initialize WiFi and MQTT client
// ...
client.subscribe("example/topic", MQTT::QOS0);
// add loop to handle incoming messages
while(1) {
client.yield(1000);
}
}
在上面的代码中,我们定义了一个名为'messageArrived”的回调函数,它将在每次接收到MQTT消息时被调用。在这个函数里,你可以添加你想要执行的代码来处理接收到的消息。然后,在主函数里,我们设置了一个MQTT客户端并订阅主题'example/topic”。最后,我们进入一个循环,通过调用'client.yield”来等待和处理传入的消息。
通过这个方法,我们可以确保在订阅确认信息收到之后再开始发布消息,从而避免在发布消息后自动取消订阅的问题。