当前位置: 首页 > news >正文

MQTT异常掉线原因

一、业务场景
我们在使用MQTT协议的时候,有些伙伴可能会遇到MQTT客户端频繁掉线、上线问题

二、原因分析及异常处理
1.原因:使用相同的clientID
方案:全局使用的clientID保证唯一性,可以采用UUID等方式

2.原因: 当前用户没有Topic权限
方案:如果配置有acl权限,则查询当前登录mqtt用户是否具有订阅对应topic的权限,无权时也会造成一直频繁断线重连

3. 原因:在回调函数内进行业务处理遇到异常并没有捕获
方案:在可能出现异常的语句块,进行try-catch捕获

    /**
     * subscribe订阅后得到的消息会执行到这里
     */
    @Override
    public void messageArrived(String topic, MqttMessage message) {
        String msg = new String(message.getPayload());
        try {
            //此处可能因为收到的消息不合法,会造成JSON转化异常,若异常未捕获,会导致MQTT客户端掉线
            JSONObject jsonObject = JSON.parseObject(msg);
            String gwId = String.valueOf(jsonObject.get("gwId"));
        } catch (JSONException e) {
            log.error("JSON Format Parsing Exception : {}", msg);
        }
    }

http://www.lryc.cn/news/149128.html

相关文章:

  • 重新理解百度智能云:写在大模型开放后的24小时
  • Stable Diffusion 提示词技巧
  • VS2019编译curl库
  • yolov5自定义模型训练三
  • 服务器中了mkp勒索病毒该怎么办?勒索病毒解密,数据恢复
  • Docker环境搭建Prometheus实验环境
  • Python Qt学习(七)Listview
  • 哈希表HashMap(基于vector和list)
  • go中的函数
  • 小试 InsCode AI 创作助手
  • 粉丝经验分享:13:00 开始的面试,13:06 就结束了,问题真是变态
  • SASS的@规则
  • 【C++初阶】模拟实现优先级队列priority_queue
  • 如何为你的公司选择正确的AIGC解决方案?
  • Windows下将nginx等可执行文件添加为服务
  • 视觉SLAM14讲笔记-第4讲-李群与李代数
  • 浅析Redis(1)
  • 【每日一题】2337. 移动片段得到字符串
  • MySQL 数据库常用命令大全(详细)
  • 中国移动加大布局长三角,打造算力产业新高地
  • 话费、加油卡、视频会员等充值接口如何对接?
  • 服务器重启MongoDB无法启动
  • 深度刨析数据在内存中的存储
  • 理解FPGA中的亚稳态
  • Leetcode86. 分隔链表
  • 如何处理 Flink 作业中的数据倾斜问题?
  • cobbler自动化安装CentOS、windows和ubuntu
  • springcloud3 GateWay章节-Nacos+gateway动态路由负载均衡4
  • RESTful API 面试必问
  • 软件机器人助力行政审批局优化网约车业务流程,推动审批业务数字化转型