10 W801 WIFI及MQTT長時間鏈接後出現TCP關閉,重連wifi也失敗,只能通過重啟設備才能正常運行

發布於 2022-05-10 14:06:41

【情況補充】:
測試後找到斷點socket讀取數據顯示ERR_CLSD,也就是socket關閉,然後重啟mqtt客戶端能重新建立,但是一讀數據就秒斷。
【問題】
使用W801的MQTTdemo向阿裡雲以及Thingsboard傳輸數據,連接3個半小時後,出現mqtt stop排查對應錯誤碼為TCP連接斷開,測試了多次,均出現這種情況。
具體測試情形如下:
1.只上傳數據,不接受阿裡雲下行數據,9個小時後中斷
2.每5s上傳數據,每7s讀取packet下行指令,3個小時後中斷
3.循環讀取packet下行指令,每5s上傳數據,1個半小時後中斷
【推測原因】
1.wifi鏈接有問題,長時間鏈接後自動關閉
2.SDK WIFI相關某個位置內存泄漏導致堆棧溢出使得WIFI鏈接不正常 重連也失敗
【問題截圖】
2.png
3.png
4.png
5.png
6.png

查看更多

關注者
0
被浏覽
2.7k
2 個回答
ldd200888
ldd200888 2022-05-12
這家夥很懶,什麼也沒寫!

Esp32 也有這樣的問題

SK2024
SK2024 2022-05-12
這家夥很懶,什麼也沒寫!

找到問題原因了,使用cJSON庫的cJSON_Print函數將Json體轉化為字符串時,會開辟內存,使用後需要使用cJSON_free函數進行內存釋放,否則循環次數多了之後,會導致內存泄漏。我的原因是這樣。

撰寫答案

請登錄後再發布答案,點擊登錄

發布
問題

分享
好友

手機
浏覽

掃碼手機浏覽