嵌入式技术论坛
直播中

王萍

7年用户 1340经验值
私信 关注
[问答]

paho_mqtt发长数据报错是怎么回事?

1、看了看不到1K,减小了数据量后正常。
2、有修改lwip协议栈的缓存
1.jpg
2.jpg

回帖(3)

王萍

2023-5-12 15:43:17
这个是老毛病了,管道的问题。可以尝试用mymqtt
举报

王萍

2023-5-12 15:43:26
mymqtt可以发长报文
但是lan8720工作时发热严重,不知道什么原因造成的。
举报

李鑫

2023-5-12 15:43:42
paho mqtt内部是使用pipe管道进行数据收发的。在实际使用时,通过write函数写缓冲区,实际上是使用rt_pipe_write函数将数据进行搬运,逐个字节写到环形缓冲区中,然后再通过文件描述符实际通过你的网口发送出去,可能存在分包和多个包合并的情况,导致发送失败。
默认的PIPE缓冲区的大小似乎是512。
我个人更加喜欢用kawaii-mqtt,或者mqttclient,作者是jiejietop,很优秀的一位程序员。这个client适配FreeRTOS,RT-Thread,Win,Linux等。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分