一.背景

  为什么要设置retained?

  1.当消息发布到MQTT服务器时,我们需要保留最新的消息到服务器上,以免订阅时丢失上一次最新的消息;

  当订阅消费端服务器重新连接MQTT服务器时,总能拿到该主题最新消息, 这个时候我们需要把retained设置为true;

 2.当消息发布到MQ服务器时,我们不需要保留最新的消息到服务器上;

  当订阅消费端服务器重新连接MQTT服务器时,不能拿到该主题最新消息,只能拿连接后发布的消息,这个时候我们需要把  retained设置为false;

二.解决方法如下:

通过源码可知我们可以设置MqttMessage类的setRetained()设置retained属性;
MqttMessage message = new MqttMessage(payload); message.setQos(qos);
message.setRetained(retained); return this.publish(message);
注:改完后重启MQTT服务器;

三.应用场景

1.重新连接MQTT服务时,不需要接收该主题最新消息,设置retained为false;

2.重新连接MQTT服务时,需要接收该主题最新消息,设置retained为true;

 

 

技术
©2019-2020 Toolsou All rights reserved,
【贪心算法】哈夫曼编码问题VHDL——JK触发器react 项目--博客系统数据库期末复习:综合应用题汇总面过了,起薪30k找出游戏的获胜者(java)JAVA实验四集合与函数式编程实验排序会了递归,不学非递归太可惜了SQL综合题 员工单位综合题数据库作业五