mqtt客户端中设置连接的 keepalive = 0,无法连接 broke emqx

可以看一下 EMQX 这边的日志,默认没有日志的话可以追踪一下你的客户端。这是 日志追踪 文档。

keep alive=0,表示0秒内,无消息,server端就 自动关闭此连接。等于你自己把自己,kick out掉了。

我看文档写的,keepalive =0 是不采用他的心跳机制啊,我理解错了吗?

保活周期,是一个以秒为单位的时间间隔。客户端在无报文发送时,将按 Keep Alive 设定的值定时向服务端发送心跳报文,确保连接不被服务端断开。

在连接建立成功后,如果服务器没有在 Keep Alive 的 1.5 倍时间内收到来自客户端的任何包,则会认为和客户端之间的连接出现了问题,此时服务器便会断开和客户端的连接。

更多细节可查看博客:MQTT 协议中的 Keep Alive 机制

可以 trace 一下你使用的 Client ID,然后看下对应的追踪日志。

那如果我想取消他的心跳机制该有什么方法吗? 我们有个项目是要过正向隔离器,如果不取消这个心跳机制的话,程序会因为收不到心跳回复,一直断开重连。

keepalive=0时,看了日志发现,并没有连接信息,我想应该是我的客户端程序并没有连到broke就已经挂了