Page 1 of 1

低功耗电池机socket保活443端口,唤醒后和https冲突

Posted: 2023年 Apr 4日 20:25
by Songyi

低功耗电池机,休眠时WiFi Mcu保活443端口,收到远程唤醒拉起主控,从尝试中得出需要在主控Mqtt上线前不断开保活socket,否则查询后台日志及观察APP会出现短暂离线,当mqtt上线慢时用户能感知到设备离线几秒。

由于当前使用的WiFi端口过滤 443只能在Mcu或Soc一端生效,当前我的设备的做法是在Mqtt上线前端口443的控制依旧在Mcu端没有切换到Soc,当前想优化云存初始化,查询论坛其他文章看到

1.云存储初始化比较晚,对于低功耗产品,可以在wifi或有线连上后,就进行初始化和录像,无须等待时间同步。
2.在获取到云端同步的时间前,可以将RTC时钟的时间设置给SDK,避免SDK在时间同步前,没有一个参考时间。

按照以上1,2操作在连网成功后,mqtt上线前初始化 云存,发现云存初始化接口失败,猜测应该是云存初始化 https使用到了443端口。
所以问题就在于保活端口和https的端口使用的都是443,低功耗设备想在连网后,mqtt上线前异步处理其他涉及https请求的业务都会被阻塞,请教有什么办法解决?

另外开头的描述是在开发中自己尝试得出的结论,有没有其他办法在唤醒拉起主控,保活 443 socket立马断开切换到Soc,到mqtt上线前不显示离线呢?


Re: 低功耗电池机socket保活443端口,唤醒后和https冲突

Posted: 2023年 Apr 4日 20:50
by pippin-bobo

您好,保活socket断开切换到SOC,目前我们没有提供这个服务,如果您SOC和wifi方案上可以做fd移交是可以保住链接的,但是即使这样子,端口还是被占用,无法在mqtt上线之前做https交互;
现在推荐客户是在mqtt上线之后在启动云存储服务,因为设备有RTC时钟设置给SDK,我们ringbuffer有足够长的缓存,对于一般网络场景,基本能够覆盖mqtt上线后,云存储片段上传正常,不会有数据丢失;
想请问下,是出于什么优化考虑或者需求考虑,想要在mqtt上线之前启动云存储服务?


Re: 低功耗电池机socket保活443端口,唤醒后和https冲突

Posted: 2023年 Apr 6日 10:30
by Songyi

感谢回答,因为低功耗产品PIR唤醒后,需要云存录像的开始帧不丢失,当前ringbuffer 10s,设置了预录7s,可以基本满足从唤醒的第一帧开始录制,不确定是否有mqtt上线超过7秒钟后,预录7秒会丢失设备PIR开始几秒的视频。

然后是论坛中看见可以提前初始化云存的回答,如下,所以想尝试看看
1.云存储初始化比较晚,对于低功耗产品,可以在wifi或有线连上后,就进行初始化和录像,无须等待时间同步。


Re: 低功耗电池机socket保活443端口,唤醒后和https冲突

Posted: 2023年 Apr 6日 11:58
by pippin-bobo

嗯,是可以提前初始化云存储的,但是就会存在您上面说的,端口复用的问题(我们出于通用性或者被防火墙的概率性考虑上选择的443端口)
现在看来核心问题可能要看看mqtt上线为什么这么慢,因为如果mqtt太慢,对于低功耗产品,我们其他功能的体验也是相对比较糟糕的


Re: 低功耗电池机socket保活443端口,唤醒后和https冲突

Posted: 2023年 Apr 6日 17:50
by 起个中文名

443是对端端口。低功耗产品两个芯片之间,为啥不使用本地端口来进行隔离呢?


Re: 低功耗电池机socket保活443端口,唤醒后和https冲突

Posted: 2023年 Apr 6日 18:36
by Songyi
起个中文名 2023年 Apr 6日 17:50

443是对端端口。低功耗产品两个芯片之间,为啥不使用本地端口来进行隔离呢?

不是很明白,具体有什么操作方法吗?当前使用的 hi3861L WiFi,443端口需要在唤醒和休眠时使用过滤器切换到Soc和 Mcu


Re: 低功耗电池机socket保活443端口,唤醒后和https冲突

Posted: 2023年 Apr 7日 10:09
by 起个中文名

hisi的切换方案我不是很清楚。我的意思是443的端口号,其实是服务器的tcp端口,并不是设备的本地端口,之前接触的低功耗切换策略,都是用本地端口来区分数据是发到soc还是mcu的。当然,hisi可能和其他方案不一样。