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