桥豆麻袋丶 2019-07-06 20:19 采纳率: 0%
浏览 562

Springboot MQTT messageArridve触发connectLost

Springboot 在mqtt的回调函数messageArrived方法里引用Dao层对数据库操作 就会触发我的connect'Lost掉线,为什么?图片说明

  • 写回答

1条回答

  • 憧憬blog 2023-03-15 05:53
    关注

    这种情况可能是由于在messageArrived方法中的数据库操作导致了线程阻塞而触发了MQTT的连接丢失。MQTT客户端的connectLost方法会在客户端与服务器之间的连接丢失时调用,这通常是由于网络连接异常或服务器宕机等原因引起的。

    为了避免这种情况,您可以在messageArrived方法中启用一个新线程来执行数据库操作,同时确保该线程及时释放数据库连接资源,以避免对连接池资源的浪费和线程的阻塞。另外,在MQTT连接中发生丢失时,您也可以通过重新连接的方式来重新建立连接并恢复数据传输。

    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站