在 ESP32-C3 的 ESP-AT 里,+MQTTSUBRECV:<LinkID>,"topic",<data_length>,data 这一条 单次能吐出来的最大长度主要受 **ESP-MQTT 的接收缓冲区(MQTT Buffer)**限制:
-
默认情况:如果设备收到的 MQTT 消息长度 超过 1024 字节(包含 MQTT header + payload),AT 会把它 拆成多条 +MQTTSUBRECV 输出,所以你会看到连续多条 +MQTTSUBRECV。(Espressif Systems) ⇒ 因此单条 +MQTTSUBRECV 的 data 一般不会超过约 1024 字节量级(实际 payload 还要扣掉 MQTT 头等开销)。
-
即使没超过 1024:也可能因为 MTU/链路分片/路由策略被拆成多条 +MQTTSUBRECV。(Espressif Systems)
-
想变大:在 ESP-AT 工程里把 MQTT buffer 调大(官方示例里提到可设到 1460 来减少拆包): menuconfig → Component config → ESP-MQTT Configurations → MQTT Using custom configurations → Default MQTT Buffer Size(Espressif Systems)

网硕互联帮助中心






评论前必须登录!
注册