您好!
我使用 MSP432E401Y 实现基于云的物联网数据记录。 我在非 RTOS 模式下使用了"simplelink_msp432e4_sdk_3_10_00_11" SDK、并将其 mbedtls 库与 lwip+MQTT 配合使用。
我已成功连接并发布高达1000字节的数据以保护 MQTT 代理(viz AWS / Mosquitto 等)。 但是、当我的数据长度超过1024字节时、在尝试发布数据时、代理无法接收到数据;相反、我与代理的连接已断开。 在 MQTT 库文件中、使用空 pbuf 调用'mqt_recv_callback'函数、这表示当我尝试发布超过1024字节的数据时连接断开。
观察结果:
如果数据长度小于1024字节、则数据会成功发布到任何 MQTT 代理
2.我尝试使用第三方 MQTT 客户端 viz. AWS 和 Mosquitto 安全代理上的'MQTT_box'发布长度为2048字节的数据、并成功发布。 (即 代理端无错误)
3.在 lwipopts.h 文件中,我已将宏设置为: #define tcp_WND 4096、 #define tcp_MSS 4096
4.在 mqtt_opt.h 文件宏中设置为 :#define MQTT_OUTPUT_RINGBUF_SIZE 5120
5.下面是 Wireshark 日志,其中以黄色突出显示的行表示设备(使用 lwip MQTT 文件)发布的数据以保护代理程序的安全。 但代理会发送断开连接、即(FIN、ACK)作为响应。
6.下面的 Wireshark 屏幕截图显示了当数据长度小于1024字节时成功发布的数据(请注意突出显示的黄色标记行)
请就此提出一些解决方案。