EMXQ 跟设备保持心跳帧,内容是什么样的

EMXQ 跟设备保持心跳帧,内容是什么样的

2024-07-02T06:35:43.845038+00:00 [debug] msg: raw_bin_received, mfa: emqx_connection:when_bytes_in/3, line: 771, peername: 39.183.161.54
:22858, clientid: JD, bin: C000, size: 2, type: hex
2024-07-02T06:35:43.845440+00:00 [debug] msg: mqtt_packet_received, mfa: emqx_connection:handle_msg/2, line: 567, peername: 39.183.161.5
4:22858, clientid: JDdLpAT, packet: PINGREQ(Q0, R0, D0), tag: MQTT
2024-07-02T06:35:43.845895+00:00 [debug] msg: mqtt_packet_sent, mfa: emqx_connection:serialize_and_inc_stats_fun/1, line: 870, peername:
39.183.161.54:22858, clientid: JDdbS9LpAT, packet: PINGRESP(Q0, R0, D0), tag: MQTT
这段是平台向设备发的心跳帧,还是平台回复设备的

MQTT的心跳包(PINGREQ和PINGRESP)结构非常简单:

固定头部:
- 字节1: 控制报文类型 (1100 0000, 十六进制为 0xC0)
- 字节2: 剩余长度 (0000 0000, 十六进制为 0x00)

PINGREQ 只包含固定头部,没有可变头部和有效载荷.

  1. PINGRESP (心跳响应) 结构:
固定头部:
- 字节1: 控制报文类型 (1101 0000, 十六进制为 0xD0)
- 字节2: 剩余长度 (0000 0000, 十六进制为 0x00)

PINGRESP 同样只包含固定头部,没有可变头部和有效载荷.

PINGREQ 是设备主动发起的:ping request .
PINGRESP是平台回应设备的 ping :ping response .

平台会主动向设备发起心跳吗

只会回 pingresq,不会主动发起