如何修改心跳超时时间?

Blade 未结 1 250
thyukari
thyukari 2025-02-12 11:35

一、该问题的重现步骤是什么?

1. 


二、你期待的结果是什么?实际看到的又是什么?

  1. 在broker的yml配置中,配置了heartbeat-timeout心跳超时时间120000ms,但程序中只是心跳检测检测周期为120000ms,实际心跳超时为90000ms,如果想要修改心跳超时时间如何配置?

  2. 如何实现以下功能:设备通过mqtt连接到broker之后,60秒未发布任何消息,那么视为断线


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex商业版 Windows系统


四、请提供详细的错误堆栈信息,这很重要。

image.png

image.png

五、若有更多详细信息,请在下面提供。

1条回答
  •  如梦技术
    2025-02-12 13:44

    mqtt 心跳超时

    • 客户端默认心跳超时 60s

    • 服务端默认心跳检测 120s

    • 服务端会默认以 1.5 倍(keepaliveBackoff * 2) 客户端心跳超时进行判断,最长周期最长 2.5 倍。(所以客户端实际超时时间为 90s ~ 150s)

    拔网线非正常断开需要一个心跳检测周期才会触发断开。


    60秒未发布任何消息,那么视为断线,那么需要设备端将连接参数 keepAlive 配小点,不建议改服务端配置。


    0 讨论(0)
代码语言
提交回复