卢台长 2024年 Nov 27日 13:55Hi,您好
当路由器断开外网的情况,只会尝试mqtt重连,但是如果5分钟内未连接成功云,则会走wifi重连的逻辑,原因是某些路由器,外网良好的情况下,存在连云一直失败,通过重新连接路由器才可以连上云
你意思是断外网的情况下,mqtt长时间离线,不会切网络到备选wifi,只会反复尝试重连当前正在连接的wifi,是吗?如果是的话,我觉得还是加一下切别的wifi是不是更好点,哪怕判定时间更久一点。
卢台长 2024年 Nov 27日 13:55Hi,您好
当路由器断开外网的情况,只会尝试mqtt重连,但是如果5分钟内未连接成功云,则会走wifi重连的逻辑,原因是某些路由器,外网良好的情况下,存在连云一直失败,通过重新连接路由器才可以连上云
你意思是断外网的情况下,mqtt长时间离线,不会切网络到备选wifi,只会反复尝试重连当前正在连接的wifi,是吗?如果是的话,我觉得还是加一下切别的wifi是不是更好点,哪怕判定时间更久一点。
目前发现你们sdk像有个可能导致内存泄漏的问题。
我这边测试wifi切换,添加多个备选wifi,断网1分钟,看到sdk开始调用tkl_wifi_scan_ap函数获取扫描到的列表,但是这之后我并没有看到你们有调用tkl_wifi_release_ap函数。
参考你们的demo,malloc的wifi列表在tkl_wifi_scan_ap函数申请传给ap_ary,tkl_wifi_release_ap函数释放。
目前看你们tkl_wifi_release_ap函数只在设备添加时候关闭ap的时候调用了一次。我这边测试多次wifi切换,每次都只调用tkl_wifi_scan_ap,这样每调用一次就漏一次。tkl_wifi_release_ap注释上写if needed. tuyaos will call this function when the ap info is no use,难道你们要一直保存数据吗?
另外在wifi切换测试过程中,发现你们sdk有个挂死问题。日志如附件191行。
do_page_fault() #2: sending SIGSEGV to mqtt_thread for invalid write access to