向多个MQTT服务器订阅主题问题
项目需求要向两个MQTT服务器订阅主题,分别编写了两个接收主题的方法
向A服务器订阅方法
int aMsgArrvd(void * context, char * topic,int topicLen,MQTTClient_message * message1){
//处理消息
MQTTClient_freeMessage(&message1);
MQTTClient_free(topic);
return 1;
}
向服务器B订阅方法
int bMsgArrvd(void * context, char * topic,int topicLen,MQTTClient_message * message2){
//处理消息
MQTTClient_freeMessage(&message2);
MQTTClient_free(topic);
return 1;
}
服务器A的数据频率比较高,服务器B的数据频率比较低,接收到服务器B的消息时,会造成程序异常退出。当把 bMsgArrvd函数中的MQTTClient_freeMessage(&message);注释掉后,程序不会异常退出,但是B服务器会一直在处理消息,无论有没有消息。
打印了一下message的地址,现个方法中message的地址会错乱,也就是说aMsgArrvd可能会打印出message1和message2的地址,同样bMsgArrvd也有可能打印出message1和message2的地址
环境:MQTT服务器:mosquitto mqtt库:libpaho-mqtt,开发语言:C
请问:一个应用程序能不能向多个MQTT服务器订阅消息,如果能,我现在的问题该如何解决。