keep alive=0,表示0秒内,无消息,server端就 自动关闭此连接。等于你自己把自己,kick out掉了。
我看文档写的,keepalive =0 是不采用他的心跳机制啊,我理解错了吗?
保活周期,是一个以秒为单位的时间间隔。客户端在无报文发送时,将按 Keep Alive 设定的值定时向服务端发送心跳报文,确保连接不被服务端断开。
在连接建立成功后,如果服务器没有在 Keep Alive 的 1.5 倍时间内收到来自客户端的任何包,则会认为和客户端之间的连接出现了问题,此时服务器便会断开和客户端的连接。
更多细节可查看博客:MQTT 协议中的 Keep Alive 机制。
可以 trace 一下你使用的 Client ID,然后看下对应的追踪日志。
那如果我想取消他的心跳机制该有什么方法吗? 我们有个项目是要过正向隔离器,如果不取消这个心跳机制的话,程序会因为收不到心跳回复,一直断开重连。
keepalive=0时,看了日志发现,并没有连接信息,我想应该是我的客户端程序并没有连到broke就已经挂了