卢台长 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,难道你们要一直保存数据吗?
还有这个函数tkl_wifi_get_connected_ap_info,参考demo实现都是需要在实现中malloc的,释放是你们内部直接释放吗?没看到对应的释放函数。函数注解中也没看到。不明确写出来,会有疑虑。