关于Apollo服务器保留消息

本文介绍如何使用ESP12-E与Arduino IDE通过MQTT协议与Apollo服务器通信时,解决订阅者未在线接收消息的问题。通过设置“PubSubClient.h”库文件中的publish函数的“retained”参数为true,确保即使订阅者离线也能接收到最新消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

笔者写得比较简略,但是相信你都查到这个问题来了,肯定能看懂我在写什么。
笔者是用的esp12-e配合arduino IDE与Apollo服务器通过MQTT协议进行通信。其中在IDE用到了一个库文件“PubSubClient.h”。 都知道MQTT基本模式是订阅-发布机制,但是在实际应用出现了这样一个问题,如果发布者发布某条消息时,订阅者并未与服务器保持连接,那么订阅者将无法得到这条消息。

解决办法

首先在Apollo服务器官网上看了一下,发现是可以支持保留发布者最后一条消息的(其实根本原因是:MQTT协议里是支持这一操作的)。
附Apollo官方文档:http://activemq.apache.org/apollo/documentation/mqtt-manual.html#Topic_Retained_Messages
所以,我敢相信,“PubSubClient.h”这个库文件也肯定是有相关API的
附库文件API的链接:https://pubsubclient.knolleary.net/api.html
链接打开图
可以看到,在publish函数的参数里,有一个“retained”的参数,点进去这一行,发现这是一个布尔值,默认是false,只要在你的程序内把它改为true,就能解决我前面所述问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值