使用MQTT的demo上傳數據同時查詢是否有下行命令一個多小時後出現mqtt停止

發布於 2022-04-25 20:21:28

【問題】:
我對sdk中的mqtt_demo進行修改後,每隔5秒上傳數據,同時原demo中的訂閱下行消息不變,連續一個多小時傳輸後會出現MQTT連接停止。
【初步定位】
根據log定位到的位置為如下圖所示的bytes_rcvd = recv(...)這個部分,正常連接是返回值一直為2,而連接的時間較長大約1個半小時後,就會開始返回值為0,導致報錯,且mqtt連接失敗了。
【補充一下】因為我對socket連接啥的不是很懂,雖然找到了函數,但是不是很看得懂。上回在社區看到w801說wifi好像沒有消息會自動斷開,所以猜測是這個讀取包的函數,如果過長時間讀不到數據會自動關閉socket鏈接嗎?
2.png
3.png
4.jpg

查看更多

關注者
0
被浏覽
1.5k
2 個回答
ZYQ
ZYQ 2022-04-25
我已不再支持W80X任何相關問題的回複,請大家不要私信,有問題找 isme 謝謝

這個 recv 裡面封裝的就是 lwip_recv 不會自動關閉socket 的

大信
大信 認證專家 2022-04-26
硬件開發,軟件開發,系統開發,工程架構,方案設計

WIFI 通信信道受幹擾,或者距離太遠,都會使連接中斷,連接中斷socket也就斷了。

wifi 連接是不可靠連接,你要在應用層,加上心跳檢測,斷線重連的機制,才能保證業務通訊可用性。

撰寫答案

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

發布
問題

分享
好友

手機
浏覽

掃碼手機浏覽