推荐一款稳定的基于C编写的MQTT Client开源库 cMQTT
MQTT协议详解及开发教程(一)MQTT协议概述
MQTT协议详解及开发教程(二)MQTT服务器EMQx搭建
MQTT协议详解及开发教程(三)MQTT Client工具软件选择及简单测试
MQTT协议详解及开发教程(四)MQTT协议报文格式
MQTT协议详解及开发教程(五)CONNECT/CONNACK报文分析
MQTT协议详解及开发教程(六)PUBLISH发布QoS0消息报文分析
MQTT协议详解及开发教程(七)PUBLISH发布QoS1报文流程分析
MQTT协议详解及开发教程(八)PUBLISH发布QoS2报文流程分析
MQTT协议详解及开发教程(九)订阅SUBSCRIBE及SUBACK报文流程分析
MQTT协议详解及开发教程(十)取消订阅UNSUBSCRIBE及UNSUBACK报文流程分析
MQTT协议详解及开发教程(11)心跳请求PINGREQ及响应PINGRSP报文流程分析
前言
在上一篇文章中,我们介绍了MQTT的心跳机制,顺便也简单的描述了Keep Alive机制。Keep Alive从字面意思看是“保活”,它是client与server建立长连接的一种机制。MQTT本质上也是TCP协议,属于C/S架构,所以也具有心跳机制。
Keep Alive
MQTT client与broker建立连接时,连接报文中有一个Keep Alive参数,它的单位是秒,MQTT协议中约定:
- MQTT Client 每隔 1*Keep Alive时间,向broker发送1次 心跳PINGREQ请求报文,broker也会回复PINGRSP报文响应。
- MQTT Broker超过1.5*Keep Alive时间没有接收到client发送的PINGREQ报文,就认为client连接超时,broker会判定client已经离线,回收响应的资源。
小结
Keep Alive机制,是一种用于MQTT 的 长连接机制。