欢迎阅读 MQTT 5.0 报文系列 的第四篇文章。在上一篇中,我们已经介绍了 MQTT 5.0 中的 SUBSCRIBE 报文和 UNSUBSCRIBE 报文。现在,我们将介绍用于维持连接的控制报文:PINGREQ 和 PINGRESP。
除了用于连接、发布和订阅的控制报文,MQTT 还有一类报文用于在客户端和服务端之间模拟心跳,以达到保持连接的目的,它们分别是 PINGREQ 报文和 PINGRESP 报文,我们通常也会称它们为心跳报文。
客户端定期向服务端发送 PINGREQ 报文,服务端可以由此得知连接良好且客户端仍然活跃。每收到一个 PINGREQ 报文,服务端就会回复一个 PINGRESP 报文,因此客户端也可以由此得知连接良好且服务端仍然活跃。
报文示例
我们使用 MQTTX CLI 向 公共 MQTT 服务器 发起一个客户端连接,不发布消息也不订阅主题,但我们仍然可以在 Wireshark 中看到客户端和服务端之间总是周期性地出现 MQTT 报文的往返,这些报文就是 PINGREQ 和 PINGRESP 报文。
以下命令将创建一个 Kee