首页 > 其他分享 >mqtt总是自动断开重连的问题

mqtt总是自动断开重连的问题

时间:2024-05-10 11:01:57浏览次数:15  
标签:接收 断开 mqttMessage mqtt 重连 String

1、问题:

在使用mqtt进行数据接收并将其转发到kafka的过程中,出现了个问题,mqtt总是自动断开并尝试重连,但是很快就又断开尝试重连,如此反复。

在代码中通过实现 MqttCallbackExtended 接口来进行mqtt的主题订阅,重连,消息接收等功能;

1)、clientID也使用了时间戳来定义,保证不会出现重复的情况

2)、连接的账号也使用的最大权限的账号

但是还是不停的出现断开并自动重连的情况,导致接收到的消息无法转发到kafka中,让下游服务进行消费。

2、解决:

使用debug模式进行一步步定位,发现在转发消息的时候抛出了个异常,而这个异常会导致mqtt连接断开,并丢失当前的消息,所以在接收消息的方法上加个try...catch...就解决了。

@Override
    public void messageArrived(String topic, MqttMessage mqttMessage) {
        try {
            String message = new String(mqttMessage.getPayload());
            if (mqttMessage.getPayload() != null) {
                publisher.publishEvent(new MessageArrivedEvent(topic, message));
            }
        } catch (Exception e) {
            log.error("消息消费失败", e);
        }
    }

 

标签:接收,断开,mqttMessage,mqtt,重连,String
From: https://www.cnblogs.com/Silentness/p/18183829

相关文章

  • MQTT服务器连接不上的问题
    问题描述环境:阿里云服务器Ubuntu22.04.3LTS,安装mosquitto后,在虚拟机端订阅消息出现报错(以前用阿里云Ubuntu20.04LTS的服务器装上就能用),以下服务器ip是我乱填的mosquitto_sub-t/iotstuff-h129.25.125.124-p1883Error:Connectionrefused解决办法云服务器ECS->安......
  • UIOTOS前端零代码应用 蓝图连线+嵌套封装 实现MQTT输入0、1切换门禁开和关
    目标通过连线+嵌套封装,实现MQTT数据推送前端控制门禁开关最终效果实现过程步骤1:新建一个页面,在工具函数input输入两个门禁的开关图标地址,再通过连线和解析实现输0、1切换图标。 步骤2:再插入图片按钮,通过连线和解析,把工具函数的输出传递给图片按钮组件的path属性。 步骤......
  • MQTT上报阿里云
    1.代码实现1.主函数代码段#include<stdio.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<dirent.h>#include<fcntl.h>#include<unistd.h>#include<stdlib.h>#include<time.h>#includ......
  • MQTT服务器连接不上的问题
    问题描述环境:阿里云服务器Ubuntu22.04.3LTS,安装mosquitto后,在虚拟机端订阅消息出现报错(以前用阿里云Ubuntu20.04LTS的服务器装上就能用),以下服务器ip是我乱填的mosquitto_sub-t/iotstuff-h129.25.125.124-p1883Error:Connectionrefused解决办法云服务器ECS->安......
  • 【网络通信】一文读懂网络应用层常见协议的区别(HTTP 、HTTPS、MQTT、FTP、RTSP、RTMP)
        应用层协议是计算机网络中至关重要的组成部分,它们定义了应用程序如何与网络进行交互,实现数据的传输、接收和处理。本文将重点介绍几种常见的应用层协议:HTTP、HTTPS、MQTT、FTP、RTSP和RTMP,分析它们的特点、区别、工作原理以及应用场景。一、HTTP协议      ......
  • SpringBoot模块集成mqtt代码实现
    1//引入pom2<!--mqtt-->3<dependency>4<groupId>org.springframework.boot</groupId>5<artifactId>spring-boot-starter-integration</artifactId>6</dependency>......
  • kettle从入门到精通 第五十三课 ETL之kettle MQTT/RabbitMQ consumer实战
    1、上一节课我们学习了MQTTproducer生产者步骤,MQTTconsumer消费者步骤。该步骤可以从支持MRQTT协议的中间件获取数据,该步骤和kafkaconsumer一样可以处理实时数据交互,如下图所示: 2、双击步骤打开MQTTconsumer配置窗口,如下图所示:Stepname:自定义步骤名称。Transformat......
  • kettle从入门到精通 第五十三课 ETL之kettle MQTT/RabbitMQ producer 实战
    1、MQTT介绍MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,设计用于连接低带宽、高延迟或不可靠网络的设备。MQTT是基于发布/订阅模式(Publish/Subscribe)的协议,其中设备可以发布消息到一个主题(Topic),其他设备可以订阅这个主题以接收相关消息。这种模式......
  • MQTT协议
    一、MQTT协议简介MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT协议是为工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议。二......
  • STM32、ESP8266与MQTT连接阿里云物联网的串口通信异常解析
    STM32、ESP8266与MQTT协议连接阿里云物联网平台时常见的串口通信异常介绍在构建物联网应用时,STM32、ESP8266与MQTT协议的结合是实现设备与网络间稳定通信的关键。然而,在连接阿里云物联网平台的过程中,串口通信异常成为了一个常见的挑战。本文将探讨这些异常现象及其可能的原因,并给......