本發(fā)明涉及通信,尤其涉及一種數(shù)據(jù)的傳輸方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、長連接和短連接是網(wǎng)絡(luò)通信中兩種不同的連接方式,它們在建立和維護(hù)連接的生命周期方面有所不同。長連接(keep-alive?connection)是指客戶端和服務(wù)器之間的連接在一段時間內(nèi)保持打開狀態(tài),以便多次數(shù)據(jù)傳輸。長連接適用于需要保持通信狀態(tài)和快速數(shù)據(jù)傳輸?shù)那闆r,但需要更多的服務(wù)器資源。短連接是指客戶端和服務(wù)器之間的連接在一次數(shù)據(jù)傳輸后就立即關(guān)閉。短連接更適用于節(jié)省資源和處理大量瞬時請求的情況,但每次建立連接都會帶來一定的開銷。
2、現(xiàn)有主流技術(shù)是客戶端與服務(wù)端之間的數(shù)據(jù)傳輸根據(jù)業(yè)務(wù)類型提前約定好接口長連接請求或是短連接請求。然而,如果客戶端頻繁發(fā)起短連接和斷開會增加通信的開銷,尤其是在高負(fù)載的情況下。如果客戶端發(fā)起多個長連接請求任務(wù),容易導(dǎo)致通信阻塞,數(shù)據(jù)傳輸產(chǎn)生延時,用戶體驗不佳。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供一種數(shù)據(jù)的傳輸方法、裝置、電子設(shè)備及存儲介質(zhì),用以解決現(xiàn)有技術(shù)中缺乏靈活性的缺陷,提供更靈活的通信策略,優(yōu)化資源使用和降低網(wǎng)絡(luò)請求響應(yīng)時間,實現(xiàn)長短連接的自動切換、動態(tài)管理。
2、本發(fā)明提供一種數(shù)據(jù)的傳輸方法,包括:
3、獲取目標(biāo)請求任務(wù);
4、檢測所述目標(biāo)請求任務(wù)中的目標(biāo)請求數(shù)據(jù)包的大小是否小于或者等于預(yù)設(shè)閾值;
5、若是,確定所述目標(biāo)請求任務(wù)為長連接請求任務(wù);否則,確定所述目標(biāo)請求任務(wù)為短連接請求任務(wù),發(fā)起短連接請求;
6、當(dāng)所述目標(biāo)請求任務(wù)為長連接請求任務(wù)時,檢測長連接請求任務(wù)隊列中是否有與所述目標(biāo)請求任務(wù)相同的請求任務(wù);
7、若是,無需將所述目標(biāo)請求任務(wù)加入長連接請求任務(wù)隊列;否則,將所述目標(biāo)請求任務(wù)加入所述長連接請求任務(wù)隊列中等待發(fā)起長連接請求。
8、根據(jù)本發(fā)明提供的一種數(shù)據(jù)的傳輸方法,所述當(dāng)所述目標(biāo)請求任務(wù)為長連接請求任務(wù)時,檢測長連接請求任務(wù)隊列中是否有與所述目標(biāo)請求任務(wù)相同的請求任務(wù),包括:
9、獲取所述目標(biāo)請求數(shù)據(jù)包,其中,所述目標(biāo)請求數(shù)據(jù)包包括:服務(wù)名、接口名和請求參數(shù);
10、檢測所述長連接請求任務(wù)隊列中的請求任務(wù)中是否存在有與所述目標(biāo)請求數(shù)據(jù)包相同的請求數(shù)據(jù)包。
11、根據(jù)本發(fā)明提供的一種數(shù)據(jù)的傳輸方法,在所述若是,無需將所述目標(biāo)請求任務(wù)加入長連接請求任務(wù)隊列的步驟之后,還包括:
12、將所述目標(biāo)請求任務(wù)中的結(jié)果回調(diào)信息保存至長連接結(jié)果回調(diào)信息列表中。
13、根據(jù)本發(fā)明提供的一種數(shù)據(jù)的傳輸方法,所述否則,將所述目標(biāo)請求任務(wù)加入所述長連接請求任務(wù)隊列中等待發(fā)起長連接請求,包括:
14、若所述長連接請求任務(wù)隊列中沒有與所述目標(biāo)請求任務(wù)相同的請求任務(wù),檢測所述長連接請求任務(wù)隊列中的請求任務(wù)數(shù)量是否小于或者等于預(yù)設(shè)數(shù)量;
15、若是,將所述目標(biāo)請求任務(wù)加入所述長連接請求任務(wù)隊列中等待發(fā)起長連接請求;否則,基于所述目標(biāo)請求任務(wù)發(fā)起短連接請求。
16、根據(jù)本發(fā)明提供的一種數(shù)據(jù)的傳輸方法,在所述檢測長連接請求任務(wù)隊列中是否有與所述目標(biāo)請求任務(wù)相同的請求任務(wù)之前,包括:
17、檢測當(dāng)前長連接域名的網(wǎng)絡(luò)狀況是否良好;
18、若是,執(zhí)行所述檢測長連接請求任務(wù)隊列中是否有與所述目標(biāo)請求任務(wù)相同的請求任務(wù)的步驟;否則,基于所述目標(biāo)請求任務(wù)發(fā)起短連接請求。
19、根據(jù)本發(fā)明提供的一種數(shù)據(jù)的傳輸方法,所述否則,基于所述目標(biāo)請求任務(wù)發(fā)起短連接請求,包括:
20、若所述當(dāng)前長連接的網(wǎng)絡(luò)狀況不佳,獲取長連接域名列表;
21、檢測所述長連接域名列表中是否有網(wǎng)絡(luò)狀態(tài)良好的長連接域名;
22、若是,將所述當(dāng)前長連接域名切換為網(wǎng)絡(luò)狀態(tài)良好的長連接域名,建立新的長連接,并執(zhí)行所述檢測長連接請求任務(wù)隊列中是否有與所述目標(biāo)請求任務(wù)相同的請求任務(wù)的步驟;否則,基于所述目標(biāo)請求任務(wù)發(fā)起短連接請求。
23、根據(jù)本發(fā)明提供的一種數(shù)據(jù)的傳輸方法,檢測所述當(dāng)前長連接域名的網(wǎng)絡(luò)狀況是否良好的指標(biāo)包括以下至少一種:心跳包響應(yīng)延遲、接口響應(yīng)異常和錯誤信息、丟包率、測試往返延遲。
24、本發(fā)明還提供一種一種數(shù)據(jù)的傳輸裝置,包括:
25、獲取模塊,用于獲取目標(biāo)請求任務(wù);
26、第一檢測模塊,用于檢測所述目標(biāo)請求任務(wù)中的目標(biāo)請求數(shù)據(jù)包的大小是否小于或者等于預(yù)設(shè)閾值;
27、確定模塊,用于若是,確定所述目標(biāo)請求任務(wù)為長連接請求任務(wù);否則,確定所述目標(biāo)請求任務(wù)為短連接請求任務(wù),發(fā)起短連接請求;
28、第二檢測模塊,用于當(dāng)所述目標(biāo)請求任務(wù)為長連接請求任務(wù)時,檢測長連接請求任務(wù)隊列中是否有與所述目標(biāo)請求任務(wù)相同的請求任務(wù);
29、處理模塊,用于若是,無需將所述目標(biāo)請求任務(wù)加入長連接請求任務(wù)隊列;否則,將所述目標(biāo)請求任務(wù)加入所述長連接請求任務(wù)隊列中等待發(fā)起長連接請求。
30、本發(fā)明還提供一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機(jī)程序,所述處理器執(zhí)行所述程序時實現(xiàn)如上述任一種所述數(shù)據(jù)的傳輸方法。
31、本發(fā)明還提供一種非暫態(tài)計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,該計算機(jī)程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述數(shù)據(jù)的傳輸方法。
32、本發(fā)明還提供一種計算機(jī)程序產(chǎn)品,包括計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述數(shù)據(jù)的傳輸方法。
33、本發(fā)明提供的一種數(shù)據(jù)的傳輸方法、裝置、電子設(shè)備及存儲介質(zhì),當(dāng)需要傳輸數(shù)據(jù)時,創(chuàng)建請求任務(wù),通過檢測目標(biāo)請求任務(wù)中的請求數(shù)據(jù)包的大小,確定采用長連接請求還是短連接請求,當(dāng)請求數(shù)據(jù)包的大小不超過預(yù)設(shè)閾值,則確定目標(biāo)請求任務(wù)為長連接請求任務(wù);當(dāng)超過預(yù)設(shè)閾值,則確定目標(biāo)請求任務(wù)為短連接請求任務(wù),發(fā)起短連接請求。當(dāng)目標(biāo)請求任務(wù)為長連接請求任務(wù)時,需要檢測長連接請求任務(wù)隊列中是否有與目標(biāo)請求任務(wù)相同的請求任務(wù)。如果有相同的請求任務(wù),將兩個相同請求任務(wù)合并為一個請求任務(wù),只需已經(jīng)在長連接請求任務(wù)隊列中請求任務(wù)繼續(xù)等待發(fā)起長連接請求,而目標(biāo)請求任務(wù)無需加入長連接請求任務(wù)隊列。這樣,一方面,結(jié)合了長連接和短連接的優(yōu)勢實現(xiàn)自動切換,根據(jù)通信需求來動態(tài)選擇連接方式;另一方面,長連接中相同的請求任務(wù)進(jìn)行合并請求,有效優(yōu)化資源使用和降低網(wǎng)絡(luò)請求響應(yīng)時間,在弱網(wǎng)下可以提高客戶端app的流暢度,提高用戶體驗。
1.一種數(shù)據(jù)的傳輸方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)的傳輸方法,其特征在于,所述當(dāng)所述目標(biāo)請求任務(wù)為長連接請求任務(wù)時,檢測長連接請求任務(wù)隊列中是否有與所述目標(biāo)請求任務(wù)相同的請求任務(wù),包括:
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)的傳輸方法,其特征在于,在所述若是,無需將所述目標(biāo)請求任務(wù)加入長連接請求任務(wù)隊列的步驟之后,還包括:
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)的傳輸方法,其特征在于,所述否則,將所述目標(biāo)請求任務(wù)加入所述長連接請求任務(wù)隊列中等待發(fā)起長連接請求,包括:
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)的傳輸方法,其特征在于,在所述檢測長連接請求任務(wù)隊列中是否有與所述目標(biāo)請求任務(wù)相同的請求任務(wù)之前,包括:
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)的傳輸方法,其特征在于,所述否則,基于所述目標(biāo)請求任務(wù)發(fā)起短連接請求,包括:
7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)的傳輸方法,其特征在于,檢測所述當(dāng)前長連接域名的網(wǎng)絡(luò)狀況是否良好的指標(biāo)包括以下至少一種:心跳包響應(yīng)延遲、接口響應(yīng)異常和錯誤信息、丟包率、測試往返延遲。
8.一種數(shù)據(jù)的傳輸裝置,其特征在于,包括:
9.一種電子設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機(jī)程序,其特征在于,所述處理器執(zhí)行所述程序時實現(xiàn)如權(quán)利要求1至7任一項所述數(shù)據(jù)的傳輸方法。
10.一種非暫態(tài)計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,其特征在于,所述計算機(jī)程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至7任一項所述數(shù)據(jù)的傳輸方法。