MQTT-Eclipse paho mqtt重连机制

  • 代码样例
  • 代码解析
    • 设置重连
  • 问题说明

代码样例

import org.eclipse.paho.client.mqttv3.*;public class ConnectMQTT {public void connectMQtt() throws MqttException {MqttConnectOptions options = new MqttConnectOptions();//心跳时间限定为30至1200秒options.setKeepAliveInterval(120);options.setConnectionTimeout(5000);options.setAutomaticReconnect(true);options.setUserName("username");options.setPassword("password".toCharArray());/*设置重连*/options.setAutomaticReconnect(true);IMqttClient client = new MqttClient("url", "clientId");client.setCallback(callback);// 建立连接client.connect(options);}private static MqttCallback callback = new MqttCallbackExtended() {/*** 连接成功回调-可以在重新连接成功时,重新订阅topic* @param reconnect* @param serverURI*/@Overridepublic void connectComplete(boolean reconnect, String serverURI) {System.out.println("Mqtt client connected. address:" + serverURI);}@Overridepublic void connectionLost(Throwable cause) {cause.printStackTrace();System.out.println("Connection lost.");}/*** 接受消息处理* @param topic* @param message* @throws Exception*/@Overridepublic void messageArrived(String topic, MqttMessage message) throws Exception {System.out.println("Receive mqtt topic:" + topic + ", message:" + message);}@Overridepublic void deliveryComplete(IMqttDeliveryToken token) {System.out.println("Mqtt message deliver complete.");}};}

代码解析

设置重连

需要设置automaticReconnect为true,默认是不支持重连机制的,当设置为true时,当连接断开时,会进行重新。客户端将尝试重新连接到服务器。它一开始会等待1秒它尝试重新连接,对于每一次失败的重新连接尝试,延迟将加倍直到它在2分钟,此时延迟将停留在2分钟

/*
设置重连*/
options.setAutomaticReconnect(true);

问题说明

1、在开发时设置automaticReconnect未true,重新连接成功后,会丢失订阅相关信息。
原因:因cleanSession参数默认为true,在重连成功后,会丢失订阅消息。
修改:可以将cleanSession参数设置为false,也可以在重连成功后重新订阅topic

我则是在重连成功时重新订阅topic。

MQTT-Eclipse paho mqtt重连机制相关推荐

  1. Eclipse Paho MQTT Python Client 使用手册

    Eclipse Paho MQTT Python Client 使用手册 原文地址:https://www.cooooder.com/archives/20210303 目录 介绍 环境 准备 快速开 ...

  2. MQTT与paho.mqtt

    MQTT协议 采用发布/订阅消息模式 使用TCP/IP提供网络连接 三种消息发布服务质量QoS,消息推送的原则,服务器维护难度递增 至多一次 至少一次 只有一次 主题的分割符与通配符 分割符" ...

  3. MQTT客户端paho.mqtt.XXX

    1. MQTT客户端C代码库 C语言库:https://github.com/eclipse/paho.mqtt.c 1.1 C源码下载构建 # centos7 OS 方法一 $ git clone ...

  4. paho架构_GitHub - yanzhangfeng/paho-mqtt: Eclipse Paho MQTT C/C++ client for Embedded platforms

    paho-mqtt 1.介绍 Paho MQTT 是 Eclipse 实现的基于 MQTT 协议的客户端,本软件包是在 Eclipse paho-mqtt 源码包的基础上设计的一套 MQTT 客户端程 ...

  5. paho mqtt java_MQTT之Eclipse.Paho源码(一)--建立连接

    写在前面 通过上一个章节MQTT系列---Java端实现消息发布与订阅的介绍,我们已经基本构建出一个可以简单通信的MQTT生产和消费服务,并且具备基本的发布/订阅消息功能.那么从本章开始,我们将从源代 ...

  6. paho架构_MQTT系列最终章-Paho源码分析(三)-心跳与重连机制

    写在前面 通过之前MQTT系列-Eclipse.Paho源码分析(二)-消息的发送与接收的介绍,相信仔细阅读过的小伙伴已经对Eclipse.Paho内部发送和订阅消息的流程有了一个较为清晰的认识,今天 ...

  7. MQTT-Eclipse paho mqtt源码分析-连接MQTT Broker

    Eclipse paho mqtt源码分析 MQTT paho mqtt 源码分析 org.eclipse.paho.client.mqttv3.MqttClient MQTT MQTT(消息队列遥测 ...

  8. 小程序paho.mqtt连接微消息队列 MQTT 版

    物联网项目现在越来越多,MQTT的使用场景也越来越广泛,同时遇到的技术问题也是越来越复杂. 最近在做一个小程序连接阿里云的微消息队列MQTT版,说实话,通过这次debug,发现阿里的技术文档很多方面不 ...

  9. linux im6q交叉编译paho.mqtt.c

    工具链问题 本来编译一下paho应该是没大问题的,反倒是cortexa9hf-vfp-neon-poky-linux-gnueabi这个工具链使用上出问题了 从开发板开发那边拿到的或者直接从nxp社区 ...

  10. Paho mqtt C语言库介绍

    目录 Paho库目录文件介绍 Paho库常用函数介绍 MQTTConnectClient中的常用函数 MQTTConnectServer中的常用函数 MQTTDeserializePublish中的常 ...

最新文章

  1. ubantu中的mysql命令
  2. Refactor!™ for ASP.NET--ASP.NET代码重构插件
  3. Yii AR Model CRUD数据库操作
  4. 软考高项之学习笔记——质量成本概念
  5. 向linux内核加入系统调用新老内核比較
  6. 此图片来自微信公众平台未经允许不可引用
  7. 重构-改善既有的代码设计-------代码的坏味道
  8. DPDK如何释放大页内存(巨页内存hugepage)
  9. 51单片机的LED的位定义(通俗易懂)
  10. 51CTO下载中心资源上传协议
  11. 小宇飞刀与xieyunc
  12. 数据集_汇总 | SLAM、重建、语义相关数据集大全
  13. 为什么我keepalive配置的vip不能通_企业十大应用-Keepalived-配置详解
  14. 物理常量/真空电容率/引力常量/真空磁导率/斯特潘-玻尔兹曼常量
  15. python模块安装位置_查看python模块的安装路径
  16. vc中控件字体的设置(转)
  17. 为什么我们需要PRINCE2认证——上海信息化培训中心
  18. oracle中两个日期相减
  19. RabbitMQ消息队列(九):Publisher的消息确认机制
  20. 美术集网校--常见的水粉调色纯干货分享,记得收藏!

热门文章

  1. 3653: 谈笑风生
  2. 杭州电子科技大学程序设计竞赛(2016’12)- 网络同步赛
  3. ubuntu服务器登桌面,Ubuntu Server安装桌面环境实现图形化访问 | 聂扬帆博客
  4. pptpd linux centos7,centos7配置pptpd
  5. Queue接口分析:add和offer区别,remove和poll方法到底啥区别
  6. 【精讲】微信小程序 基础内容(组件)入门
  7. vlan的端口隔离及端口优化——“道高一尺魔高一丈”
  8. 目标2025:通信产业在能源变局中拥抱智能未来
  9. 三分搜索--hdu2241 考研路茫茫——早起看书
  10. 笔记本启动显示0xc000014c错误--提示缺失win10/system32内部文件