MQTT-Eclipse paho mqtt重连机制
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重连机制相关推荐
- Eclipse Paho MQTT Python Client 使用手册
Eclipse Paho MQTT Python Client 使用手册 原文地址:https://www.cooooder.com/archives/20210303 目录 介绍 环境 准备 快速开 ...
- MQTT与paho.mqtt
MQTT协议 采用发布/订阅消息模式 使用TCP/IP提供网络连接 三种消息发布服务质量QoS,消息推送的原则,服务器维护难度递增 至多一次 至少一次 只有一次 主题的分割符与通配符 分割符" ...
- MQTT客户端paho.mqtt.XXX
1. MQTT客户端C代码库 C语言库:https://github.com/eclipse/paho.mqtt.c 1.1 C源码下载构建 # centos7 OS 方法一 $ git clone ...
- 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 客户端程 ...
- paho mqtt java_MQTT之Eclipse.Paho源码(一)--建立连接
写在前面 通过上一个章节MQTT系列---Java端实现消息发布与订阅的介绍,我们已经基本构建出一个可以简单通信的MQTT生产和消费服务,并且具备基本的发布/订阅消息功能.那么从本章开始,我们将从源代 ...
- paho架构_MQTT系列最终章-Paho源码分析(三)-心跳与重连机制
写在前面 通过之前MQTT系列-Eclipse.Paho源码分析(二)-消息的发送与接收的介绍,相信仔细阅读过的小伙伴已经对Eclipse.Paho内部发送和订阅消息的流程有了一个较为清晰的认识,今天 ...
- MQTT-Eclipse paho mqtt源码分析-连接MQTT Broker
Eclipse paho mqtt源码分析 MQTT paho mqtt 源码分析 org.eclipse.paho.client.mqttv3.MqttClient MQTT MQTT(消息队列遥测 ...
- 小程序paho.mqtt连接微消息队列 MQTT 版
物联网项目现在越来越多,MQTT的使用场景也越来越广泛,同时遇到的技术问题也是越来越复杂. 最近在做一个小程序连接阿里云的微消息队列MQTT版,说实话,通过这次debug,发现阿里的技术文档很多方面不 ...
- linux im6q交叉编译paho.mqtt.c
工具链问题 本来编译一下paho应该是没大问题的,反倒是cortexa9hf-vfp-neon-poky-linux-gnueabi这个工具链使用上出问题了 从开发板开发那边拿到的或者直接从nxp社区 ...
- Paho mqtt C语言库介绍
目录 Paho库目录文件介绍 Paho库常用函数介绍 MQTTConnectClient中的常用函数 MQTTConnectServer中的常用函数 MQTTDeserializePublish中的常 ...
最新文章
- ubantu中的mysql命令
- Refactor!™ for ASP.NET--ASP.NET代码重构插件
- Yii AR Model CRUD数据库操作
- 软考高项之学习笔记——质量成本概念
- 向linux内核加入系统调用新老内核比較
- 此图片来自微信公众平台未经允许不可引用
- 重构-改善既有的代码设计-------代码的坏味道
- DPDK如何释放大页内存(巨页内存hugepage)
- 51单片机的LED的位定义(通俗易懂)
- 51CTO下载中心资源上传协议
- 小宇飞刀与xieyunc
- 数据集_汇总 | SLAM、重建、语义相关数据集大全
- 为什么我keepalive配置的vip不能通_企业十大应用-Keepalived-配置详解
- 物理常量/真空电容率/引力常量/真空磁导率/斯特潘-玻尔兹曼常量
- python模块安装位置_查看python模块的安装路径
- vc中控件字体的设置(转)
- 为什么我们需要PRINCE2认证——上海信息化培训中心
- oracle中两个日期相减
- RabbitMQ消息队列(九):Publisher的消息确认机制
- 美术集网校--常见的水粉调色纯干货分享,记得收藏!
热门文章
- 3653: 谈笑风生
- 杭州电子科技大学程序设计竞赛(2016’12)- 网络同步赛
- ubuntu服务器登桌面,Ubuntu Server安装桌面环境实现图形化访问 | 聂扬帆博客
- pptpd linux centos7,centos7配置pptpd
- Queue接口分析:add和offer区别,remove和poll方法到底啥区别
- 【精讲】微信小程序 基础内容(组件)入门
- vlan的端口隔离及端口优化——“道高一尺魔高一丈”
- 目标2025:通信产业在能源变局中拥抱智能未来
- 三分搜索--hdu2241 考研路茫茫——早起看书
- 笔记本启动显示0xc000014c错误--提示缺失win10/system32内部文件