移動(dòng)設(shè)備的產(chǎn)品的網(wǎng)絡(luò)狀態(tài)取決于用戶所處的網(wǎng)絡(luò)環(huán)境。
這個(gè)網(wǎng)絡(luò)環(huán)境也會(huì)根隨的用戶的位置進(jìn)行改變煞檩。
也很有可能前一秒是在Wifi網(wǎng)絡(luò)下处嫌,這一秒4G了,再過一會(huì)信號(hào)就變?nèi)趸驘o信號(hào)了斟湃。
那么熏迹,對(duì)于產(chǎn)品的實(shí)時(shí)性要求很高的產(chǎn)品,如何設(shè)定這個(gè)超時(shí)時(shí)長呢凝赛?
比如語音識(shí)別類的產(chǎn)品注暗,有以下幾個(gè)產(chǎn)品特性坛缕,網(wǎng)絡(luò)性能對(duì)其影響較
1,上行的數(shù)據(jù)量比較大
2捆昏,服務(wù)端處理數(shù)據(jù)的時(shí)間赚楚,依賴于上傳的語音數(shù)據(jù)量
3,語音識(shí)別的過程是個(gè)持續(xù)的過程骗卜,一次完整的語音識(shí)別過程
4宠页,用戶對(duì)于產(chǎn)品的實(shí)時(shí)性要求較高
這時(shí),網(wǎng)絡(luò)超時(shí)時(shí)長的設(shè)定就不能以一個(gè)最大值的方式來執(zhí)行了寇仓。
1举户,在網(wǎng)絡(luò)信號(hào)不穩(wěn)定時(shí),我們需要快速的告知用戶焚刺,由于網(wǎng)絡(luò)狀態(tài)導(dǎo)致識(shí)別的過程出錯(cuò)敛摘,減少不必要的等待。
2乳愉,無論任何網(wǎng)絡(luò)狀態(tài)下兄淫,任何的數(shù)據(jù)量,我們都需要保證本次網(wǎng)絡(luò)請(qǐng)求的有效性蔓姚。
3捕虽,總結(jié)一句話,只要這個(gè)超時(shí)時(shí)間精確坡脐,以上的問題就可以解決泄私!
看到這里,想必大家都有一定的思路了
這里給大家例一下大概的思路
1备闲,獲取當(dāng)前網(wǎng)絡(luò)類型晌端,根據(jù)網(wǎng)絡(luò)類型得到該網(wǎng)絡(luò)類型的網(wǎng)絡(luò)速度 N.s
2,獲取本次客戶端上傳的真實(shí)數(shù)據(jù)量C.d
3恬砂,數(shù)據(jù)量 C.d與網(wǎng)速N.s作比咧纠,得出上傳數(shù)據(jù)所花費(fèi)時(shí)間?C.D.t
4,與服務(wù)端確定泻骤,處理單位數(shù)據(jù)量與花費(fèi)時(shí)間值S.P.d漆羔,
5,數(shù)據(jù)量 C.d與單位數(shù)據(jù)量費(fèi)時(shí)S.P.d關(guān)聯(lián)狱掂,得出服務(wù)器花費(fèi)時(shí)間S.P.D.t
6演痒,對(duì)于服務(wù)器返回?cái)?shù)據(jù)進(jìn)行預(yù)估S.d
7,數(shù)據(jù)量 S.d與網(wǎng)速N.s作比趋惨,得出上傳數(shù)據(jù)所花費(fèi)時(shí)間?S.D.t
8鸟顺,那么總的超時(shí)時(shí)間可以為 C.D.t + S.P.D.t + S.D.t(上傳數(shù)據(jù)時(shí)間+處理數(shù)據(jù)時(shí)間+下發(fā)數(shù)據(jù)時(shí)間)
9,也可能加上建立聯(lián)接時(shí)間的補(bǔ)充
10器虾,一些容錯(cuò)的時(shí)長buffer
這么執(zhí)行下來诊沪,超時(shí)時(shí)長就變得精確多了养筒,無論發(fā)送數(shù)據(jù)量多少,網(wǎng)絡(luò)是什么樣端姚,這個(gè)傳輸變的更可靠晕粪。
同理,該方案渐裸,也可應(yīng)用到其它類同的場(chǎng)景中巫湘,根據(jù)產(chǎn)品需求及技術(shù)依賴進(jìn)行優(yōu)化。
補(bǔ)充:類似的功能昏鹃,也可以嘗試使用分包的策略降低單次網(wǎng)絡(luò)請(qǐng)求的失敗率尚氛,減少總時(shí)長,歡迎大家閱讀及交流