向多个MQTT服务器订阅主题问题

weixin_40290083 CSDN会员 weixin_40290083 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
项目需求要向两个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服务器订阅消息,如果能,我现在的问题该如何解决。
...全文
评论 2
收藏 已收藏
分享
返回顶部
weixin_40290083 CSDN会员
C语言 70,039 成员 243,237 内容