博客> 【基础能力】实时网络响应要求的移动端App的网络超时设定
【基础能力】实时网络响应要求的移动端App的网络超时设定
2020-02-22 13:46 评论:0 阅读:845 liujunqi
优化 网络 语音识别

来自 创心思考 订阅号  Enter your image description here:

移动设备的产品的网络状态取决于用户所处的网络环境。 这个网络环境也会根随的用户的位置进行改变。 也很有可能前一秒是在Wifi网络下,这一秒4G了,再过一会信号就变弱或无信号了。 那么,对于产品的实时性要求很高的产品,如何设定这个超时时长呢? 比如语音识别类的产品,有以下几个产品特性,网络性能对其影响较 1,上行的数据量比较大 2,服务端处理数据的时间,依赖于上传的语音数据量 3,语音识别的过程是个持续的过程,一次完整的语音识别过程 4,用户对于产品的实时性要求较高 这时,网络超时时长的设定就不能以一个最大值的方式来执行了。 1,在网络信号不稳定时,我们需要快速的告知用户,由于网络状态导致识别的过程出错,减少不必要的等待。 2,无论任何网络状态下,任何的数据量,我们都需要保证本次网络请求的有效性。 3,总结一句话,只要这个超时时间精确,以上的问题就可以解决! 看到这里,想必大家都有一定的思路了 这里给大家例一下大概的思路 1,获取当前网络类型,根据网络类型得到该网络类型的网络速度 N.s 2,获取本次客户端上传的真实数据量C.d 3,数据量 C.d与网速N.s作比,得出上传数据所花费时间 C.D.t 4,与服务端确定,处理单位数据量与花费时间值S.P.d, 5,数据量 C.d与单位数据量费时S.P.d关联,得出服务器花费时间S.P.D.t 6,对于服务器返回数据进行预估S.d 7,数据量 S.d与网速N.s作比,得出上传数据所花费时间 S.D.t 8,那么总的超时时间可以为 C.D.t + S.P.D.t + S.D.t(上传数据时间+处理数据时间+下发数据时间) 9,也可能加上建立联接时间的补充 10,一些容错的时长buffer 这么执行下来,超时时长就变得精确多了,无论发送数据量多少,网络是什么样,这个传输变的更可靠。 同理,该方案,也可应用到其它类同的场景中,根据产品需求及技术依赖进行优化。

补充:类似的功能,也可以尝试使用分包的策略降低单次网络请求的失败率,减少总时长,欢迎大家阅读及交流

收藏
0
sina weixin mail 回到顶部