本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別是涉及一種網(wǎng)絡(luò)連接檢測(cè)方法和裝置。
背景技術(shù):
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,通過(guò)移動(dòng)終端進(jìn)行娛樂(lè)和工作已經(jīng)成為人們生活中的重要內(nèi)容。保持網(wǎng)絡(luò)持續(xù)可靠的連接也就成了人們關(guān)心的問(wèn)題。傳統(tǒng)的方式,是通過(guò)移動(dòng)終端向服務(wù)器發(fā)送心跳包,并接收服務(wù)器返回的心跳包來(lái)確定該移動(dòng)終端保存連接。但是頻繁的發(fā)送心跳包會(huì)浪費(fèi)移動(dòng)終端的流量,心跳包發(fā)送的太少就無(wú)法實(shí)時(shí)監(jiān)測(cè)到網(wǎng)絡(luò)連接的狀態(tài)。因此,如何實(shí)時(shí)監(jiān)測(cè)到網(wǎng)絡(luò)連接狀態(tài)并有效降低流量消耗成為目前需要解決的一個(gè)技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對(duì)上述技術(shù)問(wèn)題,提供一種能夠?qū)崟r(shí)監(jiān)測(cè)網(wǎng)絡(luò)連接狀態(tài)并有效降低流量消耗的網(wǎng)絡(luò)連接檢測(cè)方法和裝置。
一種網(wǎng)絡(luò)連接檢測(cè)方法,所述方法包括:
識(shí)別當(dāng)前所處的場(chǎng)景類型;
確定所識(shí)別出的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔,所述時(shí)間間隔按照?qǐng)鼍邦愋蛯?duì)應(yīng)的預(yù)設(shè)規(guī)則變化;
在所述時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包;
判斷在發(fā)送所述心跳包后的預(yù)設(shè)時(shí)間內(nèi)是否接收到所述服務(wù)器根據(jù)所述心跳包返回的數(shù)據(jù)包;
若是,則確定與所述服務(wù)器保持連接;
否則,則確定與所述服務(wù)器已斷開(kāi)連接。
一種網(wǎng)絡(luò)連接檢測(cè)裝置,所述裝置包括:
識(shí)別模塊,用于識(shí)別當(dāng)前所處的場(chǎng)景類型;
確定模塊,用于確定所識(shí)別出的場(chǎng)景類型對(duì)應(yīng)的心跳包的時(shí)間間隔,所述心跳包的時(shí)間間隔按照所述場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則變化;
發(fā)送模塊,用于在所述心跳包的時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包;
判斷模塊,用于判斷在發(fā)送所述心跳包后的預(yù)設(shè)時(shí)間內(nèi)是否接收到所述服務(wù)器根據(jù)所述心跳包返回的數(shù)據(jù)包;
所述確定模塊還用于若在所述預(yù)設(shè)時(shí)間內(nèi)接收到服務(wù)器根據(jù)所述心跳包返回的數(shù)據(jù)包,則確定與所述服務(wù)器保持連接;
所述確定模塊還用于若在所述預(yù)設(shè)時(shí)間內(nèi)未接收到服務(wù)器根據(jù)所述心跳包返回的數(shù)據(jù)包,則確定與所述服務(wù)器已斷開(kāi)連接。
上述網(wǎng)絡(luò)連接檢測(cè)方法和裝置,識(shí)別當(dāng)前所處的場(chǎng)景類型;確定所識(shí)別出的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔,時(shí)間間隔按照?qǐng)鼍邦愋蛯?duì)應(yīng)的預(yù)設(shè)規(guī)則變化;在時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包;判斷在發(fā)送心跳包后的預(yù)設(shè)時(shí)間內(nèi)是否接收到服務(wù)器根據(jù)心跳包返回的數(shù)據(jù)包;若是,則確定與服務(wù)器保持連接;否則,則確定與服務(wù)器已斷開(kāi)連接。由于向服務(wù)器發(fā)送心跳包的時(shí)間間隔是根據(jù)當(dāng)前所處的場(chǎng)景類型來(lái)確定的。而且心跳包的時(shí)間間隔還可以按照?qǐng)鼍邦愋蛯?duì)應(yīng)的預(yù)設(shè)規(guī)則進(jìn)行變化,由此使得不同場(chǎng)景類型對(duì)應(yīng)的心跳包的時(shí)間間隔不同,從而克服了傳統(tǒng)的發(fā)送心跳包的時(shí)間間隔固定不變而導(dǎo)致心跳包發(fā)送過(guò)于頻繁或者過(guò)少的問(wèn)題。由此根據(jù)場(chǎng)景類型確定發(fā)送心跳包的時(shí)間間隔能夠?qū)崟r(shí)監(jiān)測(cè)到網(wǎng)絡(luò)連接狀態(tài),并且有效降低了流量消耗。
附圖說(shuō)明
圖1為一個(gè)實(shí)施例中網(wǎng)絡(luò)連接檢測(cè)方法的應(yīng)用環(huán)境圖;
圖2為一個(gè)實(shí)施例中網(wǎng)絡(luò)連接檢測(cè)方法的流程圖;
圖3為一個(gè)實(shí)施例中網(wǎng)絡(luò)連接檢測(cè)裝置的結(jié)構(gòu)示意圖;
圖4為另一個(gè)實(shí)施例中網(wǎng)絡(luò)連接檢測(cè)裝置的結(jié)構(gòu)示意圖;
圖5為再一個(gè)實(shí)施例中網(wǎng)絡(luò)連接檢測(cè)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例所提供的網(wǎng)絡(luò)連接檢測(cè)方法應(yīng)用于如圖1所示的應(yīng)用環(huán)境中。終端102通過(guò)網(wǎng)絡(luò)與服務(wù)器104相連接。終端包括智能手機(jī)、平板電腦、個(gè)人筆記本電腦和個(gè)人數(shù)字助理等。終端102中可以多種場(chǎng)景類型,不同場(chǎng)景類型發(fā)送心跳包的時(shí)間間隔不同。每種場(chǎng)景類型都具有對(duì)應(yīng)的預(yù)設(shè)規(guī)則,可以將發(fā)送心跳包的時(shí)間間隔進(jìn)行增加。終端102在識(shí)別出當(dāng)前所處的場(chǎng)景類型后,確定該場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔。終端102在該時(shí)間間隔內(nèi)如果接收到服務(wù)器104發(fā)送的任何數(shù)據(jù)包,都表示終端102與服務(wù)器104之間的網(wǎng)絡(luò)保持連接。終端102在該時(shí)間間隔內(nèi)如果沒(méi)有接收到服務(wù)器104發(fā)送的數(shù)據(jù)包,則向服務(wù)器104發(fā)送心跳包。如果終端102在發(fā)送心跳包的預(yù)設(shè)時(shí)間內(nèi)接收到服務(wù)器104響應(yīng)心跳包后返回的數(shù)據(jù)包,則確定終端102與服務(wù)器104之間的網(wǎng)絡(luò)保持連接,否則,則確定終端102與服務(wù)器104之間的網(wǎng)絡(luò)已斷開(kāi)連接。在檢測(cè)到網(wǎng)絡(luò)保持連接后,終端102按照與場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔,并再次向服務(wù)器104發(fā)送心跳包。在檢測(cè)到網(wǎng)絡(luò)保持連接后,移動(dòng)終端102再次增加發(fā)送心跳包的時(shí)間間隔,直到增加至與場(chǎng)景類型對(duì)應(yīng)的上限值。由于終端102向服務(wù)器104發(fā)送心跳包的時(shí)間間隔是根據(jù)當(dāng)前所處的場(chǎng)景類型來(lái)確定的。而且心跳包的時(shí)間間隔還可以按照?qǐng)鼍邦愋蛯?duì)應(yīng)的預(yù)設(shè)規(guī)則進(jìn)行變化,由此使得不同場(chǎng)景類型對(duì)應(yīng)的心跳包的時(shí)間間隔不同,從而克服了傳統(tǒng)的發(fā)送心跳包的時(shí)間間隔固定不變而導(dǎo)致心跳包發(fā)送過(guò)于頻繁或者過(guò)少的問(wèn)題。由此根據(jù)場(chǎng)景類型確定發(fā)送心跳包的時(shí)間間隔能夠?qū)崟r(shí)監(jiān)測(cè)到網(wǎng)絡(luò)連接狀態(tài),并且有效降低了流量消耗。
在一個(gè)實(shí)施例中,如圖2所示,提供了一種網(wǎng)絡(luò)連接檢測(cè)方法,以該方法應(yīng)用于終端為例進(jìn)行說(shuō)明,該方法具體包括:
步驟202,識(shí)別當(dāng)前所處的場(chǎng)景類型。
場(chǎng)景類型可以有多種。不同的場(chǎng)景類型對(duì)信息的實(shí)時(shí)性要求不同。信息的實(shí)時(shí)性是指信息發(fā)生變化時(shí)發(fā)生變化的信息能夠被同步獲悉。場(chǎng)景類型可以包括實(shí)時(shí)性高的場(chǎng)景類型和實(shí)時(shí)性低的場(chǎng)景類型。
步驟204,確定所識(shí)別出的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔,時(shí)間間隔按照?qǐng)鼍邦愋蛯?duì)應(yīng)的預(yù)設(shè)規(guī)則變化。
對(duì)不同的場(chǎng)景類型預(yù)先設(shè)置了不同的發(fā)送心跳包的時(shí)間間隔初始值和心跳包的預(yù)設(shè)規(guī)則。實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔初始值小于實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔初始值。例如,實(shí)時(shí)性高的場(chǎng)景類型可以設(shè)置較短的發(fā)送心跳包的時(shí)間間隔初始值,如6s,實(shí)時(shí)性低的場(chǎng)景類型可以設(shè)置較長(zhǎng)的發(fā)送心跳包的時(shí)間間隔初始值,如10s。每種場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔可以在初始值的基礎(chǔ)上按照預(yù)設(shè)規(guī)則進(jìn)行變化。根據(jù)場(chǎng)景類型來(lái)確定發(fā)送心跳包的時(shí)間間隔,從而避免了傳統(tǒng)的發(fā)送心跳包的時(shí)間間隔固定不變而導(dǎo)致心跳包發(fā)送過(guò)于頻繁或者過(guò)少的情形。
步驟206,在該時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包。
在終端與服務(wù)器連接成功后,根據(jù)當(dāng)前所處的場(chǎng)景類型調(diào)用第一定時(shí)器函數(shù)。利用第一定時(shí)器函數(shù)來(lái)檢測(cè)發(fā)送心跳包的時(shí)間間隔內(nèi)是否接收到服務(wù)器發(fā)送的數(shù)據(jù)包。如果在發(fā)送心跳包的時(shí)間間隔內(nèi)接收到服務(wù)器發(fā)送的任何數(shù)據(jù)包則表示當(dāng)前與服務(wù)器處于連接狀態(tài)。服務(wù)器發(fā)送的數(shù)據(jù)包可以是心跳包也可以是與終端進(jìn)行交互的其他信息。如果在發(fā)送心跳包的時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包,則終端向服務(wù)器發(fā)送心跳包,同時(shí)調(diào)用超時(shí)處理函數(shù)。通過(guò)超時(shí)處理函數(shù)檢測(cè)是否在預(yù)設(shè)時(shí)間內(nèi)接收到服務(wù)器返回的數(shù)據(jù)包。
步驟208,判斷在發(fā)送心跳包后的預(yù)設(shè)時(shí)間內(nèi)是否接收到服務(wù)器根據(jù)心跳包返回的數(shù)據(jù)包;若是,則進(jìn)入步驟210,否則,則進(jìn)入步驟212。
如果終端與服務(wù)器之間的網(wǎng)絡(luò)保持連接,服務(wù)器在接收到心跳包后,會(huì)響應(yīng)該心跳包,并在預(yù)設(shè)時(shí)間內(nèi)返回?cái)?shù)據(jù)包。具體的,可以是返回心跳包,也可以是返回與終端進(jìn)行交互的其他信息。預(yù)設(shè)時(shí)間可以比發(fā)送心跳包的時(shí)間間隔短。例如,發(fā)送心跳包的時(shí)間間隔為6s,預(yù)設(shè)時(shí)間為5s。
步驟210,確定與服務(wù)器保持連接。
步驟212,確定與服務(wù)器已斷開(kāi)連接。
如果在預(yù)設(shè)時(shí)間內(nèi)未接收到服務(wù)器返回的任何數(shù)據(jù)包,則確定終端與服務(wù) 器之間的網(wǎng)絡(luò)連接已斷開(kāi)。調(diào)用超時(shí)回調(diào)函數(shù),停止檢測(cè)網(wǎng)絡(luò)狀態(tài)。
本實(shí)施例中,識(shí)別當(dāng)前所處的場(chǎng)景類型;確定所識(shí)別出的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔,時(shí)間間隔按照?qǐng)鼍邦愋蛯?duì)應(yīng)的預(yù)設(shè)規(guī)則變化;在時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包;判斷在發(fā)送心跳包后的預(yù)設(shè)時(shí)間內(nèi)是否接收到服務(wù)器根據(jù)心跳包返回的數(shù)據(jù)包;若是,則確定與服務(wù)器保持連接;否則,則確定與服務(wù)器已斷開(kāi)連接。由于向服務(wù)器發(fā)送心跳包的時(shí)間間隔是根據(jù)當(dāng)前所處的場(chǎng)景類型來(lái)確定的。而且心跳包的時(shí)間間隔還可以按照?qǐng)鼍邦愋蛯?duì)應(yīng)的預(yù)設(shè)規(guī)則進(jìn)行變化,由此使得不同場(chǎng)景類型對(duì)應(yīng)的心跳包的時(shí)間間隔不同,從而克服了傳統(tǒng)的發(fā)送心跳包的時(shí)間間隔固定不變而導(dǎo)致心跳包發(fā)送過(guò)于頻繁或者過(guò)少的問(wèn)題。由此根據(jù)場(chǎng)景類型確定發(fā)送心跳包的時(shí)間間隔能夠?qū)崟r(shí)監(jiān)測(cè)到網(wǎng)絡(luò)連接狀態(tài),并且有效降低了流量消耗。
在一個(gè)實(shí)施例中,在識(shí)別當(dāng)前所處的場(chǎng)景類型的步驟之前,還包括:展示多個(gè)場(chǎng)景的界面;獲取用戶在該界面選擇的場(chǎng)景類型;記錄與用戶選擇的場(chǎng)景類型對(duì)應(yīng)的場(chǎng)景狀態(tài)值;識(shí)別當(dāng)前所處的場(chǎng)景類型的步驟包括:根據(jù)場(chǎng)景狀態(tài)值確定用戶當(dāng)前所處的場(chǎng)景類型。
本實(shí)施例中,終端可以展示多個(gè)場(chǎng)景的界面。具體的,可以通過(guò)終端上安裝的應(yīng)用程序來(lái)展示多個(gè)場(chǎng)景的界面。進(jìn)一步的,可以通過(guò)同一個(gè)應(yīng)用程序來(lái)展示多個(gè)場(chǎng)景的界面,也可以通過(guò)不同的應(yīng)用程序來(lái)展示不同的場(chǎng)景的界面。其中多個(gè)場(chǎng)景可以集中在一個(gè)界面中,也可以分布在不同的界面中。每個(gè)場(chǎng)景類型都具有預(yù)設(shè)的場(chǎng)景狀態(tài)值。將用戶選擇的場(chǎng)景類型對(duì)應(yīng)的場(chǎng)景狀態(tài)值進(jìn)行記錄,由此能夠根據(jù)已記錄的場(chǎng)景狀態(tài)值來(lái)確定用戶當(dāng)前所處的場(chǎng)景類型。從而能夠根據(jù)場(chǎng)景類型來(lái)確定心跳包的時(shí)間間隔。
在一個(gè)實(shí)施例中,在確定與服務(wù)器保持連接的步驟之后,還包括:按照與場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔;重復(fù)執(zhí)行在時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包的步驟,直到發(fā)送心跳包的時(shí)間間隔被增加至與場(chǎng)景類型對(duì)應(yīng)的上限值。
本實(shí)施例中,每種場(chǎng)景類型都設(shè)置有增加發(fā)送心跳包的時(shí)間間隔的預(yù)設(shè)規(guī)則。預(yù)設(shè)規(guī)則可以是在初次發(fā)送心跳包的時(shí)間間隔作為初始值,在確定終端與 服務(wù)器之間的網(wǎng)絡(luò)保持連接后,以該初始值為基數(shù)增加預(yù)設(shè)百分比的時(shí)間間隔值作為下一次發(fā)送心跳包的時(shí)間間隔。在下一次發(fā)送心跳包后確認(rèn)終端與服務(wù)器之間的網(wǎng)絡(luò)保持連接后,再次以下一次發(fā)送心跳包的時(shí)間間隔為基數(shù)增加預(yù)設(shè)百分比的時(shí)間間隔值,以此逐漸增加發(fā)送心跳包的時(shí)間間隔。也就是以初次發(fā)送心跳包的時(shí)間間隔作為初始值,以n作為冪指數(shù),將初始值*(1+預(yù)設(shè)百分比)n作為第n次發(fā)送心跳包的時(shí)間間隔,直至增加到場(chǎng)景類型對(duì)應(yīng)的上限值。其中實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始值比實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始值低,實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)百分比比實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)百分比低,而且實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的上限值比實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的上限值要低。例如,實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始值為6s,預(yù)設(shè)百分比為5%,上限值為12s,則第二次發(fā)送心跳包的時(shí)間間隔為6+6*5%=6.3s。實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始值為10s,預(yù)設(shè)百分比為10%,上限值為40s,則第二次發(fā)送心跳包的時(shí)間間隔為10+10*10%=11s。由此能夠?qū)?shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔與實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔有效區(qū)分開(kāi)來(lái),進(jìn)而能夠在實(shí)時(shí)性低的場(chǎng)景類型中與實(shí)時(shí)性高的場(chǎng)景類型中分別實(shí)時(shí)監(jiān)測(cè)終端與服務(wù)器之間的網(wǎng)絡(luò)連接狀態(tài),又逐步將發(fā)送心跳包的時(shí)間間隔增長(zhǎng),從而有效節(jié)省引動(dòng)終端的流量消耗。
在一個(gè)實(shí)施例中,場(chǎng)景類型包括實(shí)時(shí)性高的場(chǎng)景類型和實(shí)時(shí)性低的場(chǎng)景類型,在確定與服務(wù)器保持連接的步驟之后,還包括:當(dāng)從實(shí)時(shí)性高的場(chǎng)景類型切換至實(shí)時(shí)性低的場(chǎng)景類型時(shí),判斷實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔是否大于實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔;若是,則以實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔作為實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始時(shí)間間隔;重復(fù)執(zhí)行在時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包的步驟;按實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔直到增加至實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的上限值。
本實(shí)施例中,場(chǎng)景類型可以隨意切換。由于場(chǎng)景類型切換的時(shí)間極短,耗 時(shí)為毫秒級(jí),因此在場(chǎng)景類型切換時(shí)可以不需要檢測(cè)網(wǎng)絡(luò)是否連接。當(dāng)用戶從實(shí)時(shí)性高的場(chǎng)景類型切換至實(shí)時(shí)性低的場(chǎng)景類型時(shí),也就意味著發(fā)送心跳包的時(shí)間間隔可能要縮短。此時(shí)需要判斷切換前的實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔是否大于切換后的實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔,具體的,可以將切換前的實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔與切換后的實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔的預(yù)設(shè)初始值進(jìn)行比較。
由于在場(chǎng)景類型切換之前已經(jīng)確認(rèn)終端與服務(wù)器之間的網(wǎng)絡(luò)保持連接,如果切換前的實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔大于切換后的實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔的預(yù)設(shè)初始值,可以將切換前實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔作為切換后實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始時(shí)間間隔。在以初始時(shí)間間隔發(fā)送心跳包后的預(yù)設(shè)時(shí)間內(nèi)接收到服務(wù)器響應(yīng)心跳包返回的數(shù)據(jù)包后,則確定終端與服務(wù)器之間的網(wǎng)絡(luò)保持連接。并且按實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔直到增加至實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的上限值。由于切換后實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始時(shí)間間隔比預(yù)設(shè)初始值要高,從而使得切換后實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的首次發(fā)送心跳包的時(shí)間間隔比預(yù)設(shè)的時(shí)間間隔要長(zhǎng),進(jìn)而按照預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔后,使得切換后實(shí)時(shí)性低的場(chǎng)景類型每次發(fā)送心跳包的時(shí)間間隔與預(yù)設(shè)的時(shí)間間隔要長(zhǎng)。因此能夠在實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)連接狀態(tài)時(shí)還可以進(jìn)一步降低終端的流量損耗。
如果切換前的實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔小于切換后的實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔的預(yù)設(shè)初始值,則采用切換后的實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔的預(yù)設(shè)初始值作為發(fā)送心跳包的初始時(shí)間間隔。在以初始時(shí)間間隔發(fā)送心跳包后的預(yù)設(shè)時(shí)間內(nèi)接收到服務(wù)器響應(yīng)心跳包返回的數(shù)據(jù)包后,則確定終端與服務(wù)器之間的網(wǎng)絡(luò)保持連接。并且按實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔直到增加至實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的上限值。以便在場(chǎng)景類型切換后可以獲得一個(gè)比場(chǎng)景類型切換前發(fā)送心跳包的時(shí)間間隔長(zhǎng)的時(shí)間間隔,從而能夠在實(shí) 時(shí)監(jiān)測(cè)網(wǎng)絡(luò)連接狀態(tài)時(shí)還可以進(jìn)一步降低終端的流量損耗。
在一個(gè)實(shí)施例中,場(chǎng)景類型包括實(shí)時(shí)性高的場(chǎng)景類型和實(shí)時(shí)性低的場(chǎng)景類型,在確定與服務(wù)器保持連接的步驟之后,還包括:當(dāng)從實(shí)時(shí)性低的場(chǎng)景類型切換至實(shí)時(shí)性高的場(chǎng)景類型時(shí),判斷實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔是否大于實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔的上限值;若是,則獲取實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔預(yù)設(shè)初始值;否則,將實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔作為實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始時(shí)間間隔;重復(fù)執(zhí)行在時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包的步驟;按實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔直到增加至實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的上限值。
本實(shí)施例中,當(dāng)用戶從實(shí)時(shí)性低的場(chǎng)景類型切換至實(shí)時(shí)性高的場(chǎng)景類型時(shí),也就意味著發(fā)送心跳包的時(shí)間間隔可能要加長(zhǎng)。此時(shí)需要判斷切換前的實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔是否大于切換后實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔的上限值。如果是,則表示采用切換前的實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔已經(jīng)不符合切換后實(shí)時(shí)性高的場(chǎng)景類型檢測(cè)網(wǎng)絡(luò)連接狀態(tài)的要求,需要獲取實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔預(yù)設(shè)初始值。否則,則表示采用切換前的實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔能夠符合切換后實(shí)時(shí)性高的場(chǎng)景類型檢測(cè)網(wǎng)絡(luò)連接狀態(tài)的要求,可以將實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔作為實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始時(shí)間間隔。
在以該初始時(shí)間間隔發(fā)送心跳包后的預(yù)設(shè)時(shí)間內(nèi)接收到服務(wù)器響應(yīng)心跳包返回的數(shù)據(jù)包后,則確定終端與服務(wù)器之間的網(wǎng)絡(luò)保持連接。并且按實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔直到增加至實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的上限值。將實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔作為實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始時(shí)間間隔,使得切換后實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始時(shí)間間隔比預(yù)設(shè)初始值要高,從而使得切換后實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的首次發(fā)送心跳包的時(shí)間間隔比預(yù)設(shè)的時(shí)間 間隔要長(zhǎng),進(jìn)而按照預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔后,使得切換后實(shí)時(shí)性高的場(chǎng)景類型每次發(fā)送心跳包的時(shí)間間隔與預(yù)設(shè)的時(shí)間間隔要長(zhǎng)。因此能夠在實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)連接狀態(tài)時(shí)還可以進(jìn)一步降低終端的流量損耗。
進(jìn)一步的,場(chǎng)景類型可以包括多種,例如實(shí)時(shí)性中的場(chǎng)景類型等。可以在多個(gè)場(chǎng)景類型中進(jìn)行多次切換,每次切換后,都可采用上述方式進(jìn)行比較,以便在場(chǎng)景類型切換后可以獲得一個(gè)比發(fā)送心跳包的預(yù)設(shè)初始值長(zhǎng)的時(shí)間間隔,從而能夠在實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)連接狀態(tài)時(shí)還可以進(jìn)一步降低終端的流量損耗。
在一個(gè)實(shí)施例中,在直到發(fā)送心跳包的時(shí)間間隔被增加至與場(chǎng)景類型對(duì)應(yīng)的上限值的步驟之后,還包括:將上限值確定為場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的固定時(shí)間間隔;在固定時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包;判斷在發(fā)送心跳包后的預(yù)設(shè)時(shí)間內(nèi)是否接收到服務(wù)器根據(jù)心跳包返回的數(shù)據(jù)包;若是,則確定與服務(wù)器保持連接;否則,則確定與服務(wù)器已斷開(kāi)連接。
本實(shí)施例中,在發(fā)送心跳包的時(shí)間間隔被增加至與場(chǎng)景類型對(duì)應(yīng)的上限值的步驟之后,如果不進(jìn)行場(chǎng)景類型切換,則終端將該上限值作為發(fā)送心跳包的固定時(shí)間間隔,并以該固定時(shí)間間隔向服務(wù)器發(fā)送心跳包來(lái)檢測(cè)網(wǎng)絡(luò)是否保持連接。如果在切換場(chǎng)景類型后,則可以將切換后場(chǎng)景類型對(duì)應(yīng)的上限值作為發(fā)送心跳包的固定時(shí)間間隔。具體的,當(dāng)從實(shí)時(shí)性高的場(chǎng)景類型切換至實(shí)時(shí)性低的場(chǎng)景類型時(shí),將實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的上限值作為發(fā)送心跳包的固定時(shí)間間隔,并以該固定時(shí)間間隔向服務(wù)器發(fā)送心跳包來(lái)檢測(cè)網(wǎng)絡(luò)是否保持連接。當(dāng)從實(shí)時(shí)性低的場(chǎng)景類型切換至實(shí)時(shí)性高的場(chǎng)景類型時(shí),將實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的上限值作為發(fā)送心跳包的固定時(shí)間間隔,并以該固定時(shí)間間隔向服務(wù)器發(fā)送心跳包來(lái)檢測(cè)網(wǎng)絡(luò)是否保持連接。
進(jìn)一步的,如果是多次切換場(chǎng)景類型,可以將最末次切換后的場(chǎng)景類型對(duì)應(yīng)的上限值作為發(fā)送心跳包的固定時(shí)間間隔,并以該固定時(shí)間間隔向服務(wù)器發(fā)送心跳包來(lái)檢測(cè)網(wǎng)絡(luò)是否保持連接。
在一個(gè)實(shí)施例中,如圖3所示,提供了一種網(wǎng)絡(luò)連接檢測(cè)裝置,該裝置包 括:識(shí)別模塊302、確定模塊304、發(fā)送模塊306和判斷模塊308,其中:
識(shí)別模塊302,用于識(shí)別當(dāng)前所處的場(chǎng)景類型。
確定模塊304,用于確定所識(shí)別出的場(chǎng)景類型對(duì)應(yīng)的心跳包的時(shí)間間隔,心跳包的時(shí)間間隔按照?qǐng)鼍邦愋蛯?duì)應(yīng)的預(yù)設(shè)規(guī)則變化。
發(fā)送模塊306,用于在心跳包的時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包。
判斷模塊308,用于判斷在發(fā)送所述心跳包后的預(yù)設(shè)時(shí)間內(nèi)是否接收到服務(wù)器根據(jù)心跳包返回的數(shù)據(jù)包。
確定模塊304還用于若在預(yù)設(shè)時(shí)間內(nèi)接收到服務(wù)器根據(jù)心跳包返回的數(shù)據(jù)包,則確定與服務(wù)器保持連接。
確定模塊304還用于若在預(yù)設(shè)時(shí)間內(nèi)未接收到服務(wù)器根據(jù)心跳包返回的數(shù)據(jù)包,則確定與服務(wù)器已斷開(kāi)連接。
在一個(gè)實(shí)施例中,如圖4所示,該裝置還包括:展示模塊310、獲取模塊312和記錄模塊314,其中:
展示模塊310,用于展示多個(gè)場(chǎng)景的界面。
獲取模塊312,用于獲取用戶在界面選擇的場(chǎng)景類型。
記錄模塊314,用于記錄與用戶選擇的場(chǎng)景類型對(duì)應(yīng)的場(chǎng)景狀態(tài)值。
識(shí)別模塊302還用于根據(jù)場(chǎng)景狀態(tài)值確定用戶當(dāng)前所處的場(chǎng)景類型。
在一個(gè)實(shí)施例中,如圖5所示,該裝置還包括:增加模塊316,用于按照與場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔;發(fā)放模塊306還用于重復(fù)執(zhí)行在時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包的步驟;增加模塊316還用于將發(fā)送心跳包的時(shí)間間隔被增加至與場(chǎng)景類型對(duì)應(yīng)的上限值。
在一個(gè)實(shí)施例中,場(chǎng)景類型包括實(shí)時(shí)性高的場(chǎng)景類型和實(shí)時(shí)性低的場(chǎng)景類型,判斷模塊308還用于當(dāng)從實(shí)時(shí)性高的場(chǎng)景類型切換至實(shí)時(shí)性低的場(chǎng)景類型時(shí),判斷實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔是否大于實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔;確定模塊304還用于若實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔大于實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心 跳包的時(shí)間間隔,則以實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔作為實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始時(shí)間間隔;發(fā)送模塊306還用于重復(fù)執(zhí)行在時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包的步驟;增加模塊316還用于按實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔直到增加至實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的上限值。
在一個(gè)實(shí)施例中,場(chǎng)景類型包括實(shí)時(shí)性高的場(chǎng)景類型和實(shí)時(shí)性低的場(chǎng)景類型,判斷模塊308還用于當(dāng)從實(shí)時(shí)性低的場(chǎng)景類型切換至實(shí)時(shí)性高的場(chǎng)景類型時(shí),判斷實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔是否大于實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔的上限值;獲取模塊312還用于若實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔大于實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔的上限值,則獲取實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔初始值;確定模塊304還用于若實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔小于實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔的上限值,將實(shí)時(shí)性低的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的時(shí)間間隔作為實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的初始時(shí)間間隔;發(fā)送模塊306還用于重復(fù)執(zhí)行在時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包的步驟;增加模塊316還用于按實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的預(yù)設(shè)規(guī)則增加發(fā)送心跳包的時(shí)間間隔直到增加至實(shí)時(shí)性高的場(chǎng)景類型對(duì)應(yīng)的上限值。
在一個(gè)實(shí)施例中,確定模塊304還用于將上限值確定為場(chǎng)景類型對(duì)應(yīng)的發(fā)送心跳包的固定時(shí)間間隔;發(fā)送模塊306還用于在固定時(shí)間間隔內(nèi)未接收到服務(wù)器發(fā)送的數(shù)據(jù)包時(shí),向服務(wù)器發(fā)送心跳包;判斷模塊308還用于判斷在發(fā)送所述心跳包后的預(yù)設(shè)時(shí)間內(nèi)是否接收到服務(wù)器根據(jù)心跳包返回的數(shù)據(jù)包;確定模塊304還用于若在預(yù)設(shè)時(shí)間內(nèi)接收到服務(wù)器根據(jù)所述心跳包返回的數(shù)據(jù)包,則確定與服務(wù)器保持連接;確定模塊304還用于若在預(yù)設(shè)時(shí)間內(nèi)未接收到服務(wù)器根據(jù)所述心跳包返回的數(shù)據(jù)包,則確定與服務(wù)器已斷開(kāi)連接。
以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說(shuō)明書(shū)記載的范圍。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。