欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種心跳連接方法,相關(guān)裝置以及系統(tǒng)的制作方法

文檔序號(hào):7804676閱讀:171來源:國知局
專利名稱:一種心跳連接方法,相關(guān)裝置以及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種心跳連接方法,相關(guān)裝置以及系統(tǒng)。
背景技術(shù)
基于因特網(wǎng)協(xié)議(IP,Internet Protocol)的心跳消息推送機(jī)制在移動(dòng)終端中的應(yīng)用開始在不斷的被發(fā)掘,應(yīng)用前景十分廣闊?;贗P的Push消息推送的基礎(chǔ)是建立移動(dòng)終端與Push服務(wù)器的長連接。由于有終端與服務(wù)器的長連接存在,通過這個(gè)連接就可以從網(wǎng)絡(luò)側(cè)實(shí)時(shí)地向終端推送Push消息。由于終端與推送(Push)服務(wù)器之間的網(wǎng)絡(luò)防火墻設(shè)置了超時(shí)時(shí)間,終端與Push 服務(wù)器建立連接后,若該心跳連接的鏈路上在網(wǎng)絡(luò)的超時(shí)時(shí)間內(nèi)沒有數(shù)據(jù)的傳送,網(wǎng)絡(luò)防火墻會(huì)更新路由表,從而刪除這條心跳連接的鏈路。因此長期保活這條心跳連接的鏈路是 Push消息實(shí)時(shí)推送的前提條件。這一點(diǎn),是靠終端周期性的向服務(wù)器發(fā)送心跳包做到的。 只要終端向push服務(wù)器發(fā)送心跳包的時(shí)間間隔(心跳值)小于或等于該心跳連接鏈路上的防火墻超時(shí)時(shí)間,就可以維持終端與Push服務(wù)器的心跳連接不斷開。在現(xiàn)有技術(shù)中,終端跟Push服務(wù)器建立連接后,終端嘗試搜索該鏈路上網(wǎng)絡(luò)防火墻的最短超時(shí)時(shí)間,終端根據(jù)該最短超時(shí)時(shí)間確定心跳值,并使用該心跳值向Push服務(wù)器發(fā)送心跳包。由于在終端與push服務(wù)器進(jìn)行心跳連接的過程中沒有考慮push服務(wù)器的負(fù)載情況,因此,push服務(wù)器會(huì)不斷的與新的終端建立心跳連接,導(dǎo)致push服務(wù)器負(fù)荷超載。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種心跳連接方法,相關(guān)裝置以及系統(tǒng),用于push服務(wù)器與終端建立心跳連接時(shí),避免push服務(wù)器負(fù)荷超載。本發(fā)明提供的心跳連接方法,包括推送push服務(wù)器與第一終端建立心跳連接; 所述push服務(wù)器接收所述第一終端發(fā)送的心跳包,所述心跳包中攜帶有所述第一終端的當(dāng)前心跳值;所述push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載;若所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則根據(jù)預(yù)置規(guī)則確定第二終端,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。本發(fā)明提供的心跳連接方法,包括終端獲取需要進(jìn)行心跳連接的push服務(wù)器的地址;所述終端根據(jù)所述push服務(wù)器的地址與所述push服務(wù)器建立心跳連接;所述終端根據(jù)所述push服務(wù)器的地址向所述push服務(wù)器發(fā)送心跳包,所述心跳包攜帶有當(dāng)前心跳值,使得所述push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算心跳連接的心跳負(fù)載,當(dāng)所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則所述push服務(wù)器根據(jù)預(yù)置規(guī)則確定第二終端,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。本發(fā)明提供的push服務(wù)器,包括心跳連接單元,用于push服務(wù)器與第一終端建立心跳連接;心跳接收單元,用于接收所述第一終端發(fā)送的心跳包,所述心跳包中攜帶有所述第一終端的當(dāng)前心跳值;負(fù)載計(jì)算單元,用于push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載;終端確定單元,用于若所述心跳負(fù)載大于所述 push服務(wù)器的心跳負(fù)載閾值,則根據(jù)預(yù)置規(guī)則確定第二終端;負(fù)載處理單元,用于在確定所述第二終端之后,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。本發(fā)明提供的終端,包括地址獲取單元,用于獲取需要進(jìn)行心跳連接的push服務(wù)器的地址;連接單元,用于根據(jù)所述push服務(wù)器的地址與所述push服務(wù)器建立心跳連接;心跳包發(fā)送單元,用于在建立所述心跳連接之后,根據(jù)所述push服務(wù)器的地址向所述 push服務(wù)器發(fā)送心跳包,所述心跳包攜帶有當(dāng)前心跳值,使得所述push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算心跳連接的心跳負(fù)載,當(dāng)所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則所述push服務(wù)器根據(jù)預(yù)置規(guī)則確定第二終端,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。本發(fā)明提供的心跳連接系統(tǒng),其特征在于,包括如上所述的push服務(wù)器,如上所述的終端,以及心跳管理服務(wù)器;所述心跳管理服務(wù)器用于接收終端發(fā)送的地址查詢消息, 根據(jù)所述地址查詢消息中攜帶的入網(wǎng)信息和位置信息查詢所述終端需要進(jìn)行心跳連接的 push服務(wù)器的地址;向所述終端返回查詢到的push服務(wù)器的地址。從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)本發(fā)明實(shí)施例中的push 服務(wù)器在接收到終端發(fā)送的心跳包之后,根據(jù)所述心跳包中攜帶的所述終端的當(dāng)前心跳值計(jì)算與所述終端建立心跳連接之后的心跳負(fù)載,并判斷所述心跳負(fù)載是否大于所述push 服務(wù)器的心跳負(fù)載閾值,從而在所述心跳負(fù)載大于所述心跳負(fù)載閾值時(shí),可以根據(jù)預(yù)置規(guī)則確定出需要調(diào)整的終端,對(duì)所述終端執(zhí)行減小心跳負(fù)載的操作,從而確保push服務(wù)器的心跳負(fù)載在其負(fù)荷范圍之內(nèi),避免了 push服務(wù)器超載所造成的不利影響。


圖1是本發(fā)明實(shí)施例中心跳連接方法的一個(gè)流程示意圖;圖2是本發(fā)明實(shí)施例中心跳連接方法的另一個(gè)流程示意圖;圖3是本發(fā)明實(shí)施例中心跳連接方法的另一個(gè)流程示意圖;圖4是本發(fā)明實(shí)施例中心跳連接方法的另一個(gè)流程示意圖;圖5是本發(fā)明實(shí)施例中心跳連接方法的另一個(gè)流程示意圖;圖6是本發(fā)明實(shí)施例中心跳連接方法的另一個(gè)流程示意圖;圖7是本發(fā)明實(shí)施例中push服務(wù)器的邏輯結(jié)構(gòu)示意圖;圖8是本發(fā)明實(shí)施例中終端的邏輯結(jié)構(gòu)示意圖;圖9是本發(fā)明實(shí)施例中心跳連接系統(tǒng)的邏輯結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例提供了一種心跳連接方法,相關(guān)裝置以及系統(tǒng),用于push服務(wù)器與終端建立心跳連接時(shí),避免push服務(wù)器負(fù)荷超載。請(qǐng)參閱圖1,本發(fā)明實(shí)施例中心跳連接方法的一個(gè)實(shí)施例包括101、push服務(wù)器與第一終端建立心跳連接;push服務(wù)器與第一終端建立心跳連接。具體的,在終端需要與push服務(wù)器建立心跳連接時(shí),所述終端會(huì)向所述push服務(wù)器發(fā)送心跳連接請(qǐng)求,當(dāng)push服務(wù)器接受了所述心跳連接請(qǐng)求之后,所述push服務(wù)器與所述終端的心跳連接建立成功。在實(shí)際應(yīng)用中,push 服務(wù)器可以為心跳服務(wù)器。102、push服務(wù)器接收所述第一終端發(fā)送的心跳包;push服務(wù)器接收所述第一終端發(fā)送的心跳包,所述心跳包中攜帶有所述第一終端的當(dāng)前心跳值,所述當(dāng)前心跳值為第一終端當(dāng)前發(fā)送兩次心跳包之間的間隔時(shí)間。具體的,在第一終端向push服務(wù)器發(fā)送了心跳連接請(qǐng)求之后,若在預(yù)置時(shí)間內(nèi)第一終端未收到所述push服務(wù)器返回的連接失敗響應(yīng),第一終端則可以確定所述心跳連接建立成功,第一終端就可以向push服務(wù)器發(fā)送心跳包,保持與push服務(wù)器建立的心跳連接。103、push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載;push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載。所述心跳負(fù)載為push服務(wù)器在單位時(shí)間內(nèi)處理終端發(fā)送的心跳包請(qǐng)求總次數(shù),如, push服務(wù)器在Is內(nèi)需要處理的終端心跳包請(qǐng)求總數(shù)為100萬次,則心跳負(fù)載為100萬次/
秒。在本發(fā)明實(shí)施例中,心跳負(fù)載的計(jì)算方法可以為
、、ο,ι ,么HeartBeat1 + HeartBeat9 其中,HeartBeat1為當(dāng)前時(shí)間之前的T/2時(shí)間內(nèi)已經(jīng)產(chǎn)生的心跳總次數(shù), HeartBeat2為當(dāng)前時(shí)間之后的T/2時(shí)間內(nèi)預(yù)計(jì)產(chǎn)生的總心跳次數(shù),在獲取到所述當(dāng)前心跳值之后,可以根據(jù)之前建立連接的心跳值和所述當(dāng)前心跳值估算出HeartBea、。在實(shí)際應(yīng)用中,一臺(tái)push服務(wù)器可以與多個(gè)終端建立心跳連接,所建立的心跳連接越多,push服務(wù)器所承受的心跳負(fù)載就越大,在計(jì)算所述心跳負(fù)載的算法中,所述當(dāng)前心跳值越大,則所述心跳負(fù)載越小。104、push服務(wù)器判斷心跳負(fù)載是否大于push服務(wù)器的心跳負(fù)載閾值;push服務(wù)器判斷所述心跳負(fù)載是否大于所述push服務(wù)器的心跳負(fù)載閾值,若是, 則觸發(fā)步驟105根據(jù)預(yù)置規(guī)則確定需要進(jìn)行減小心跳負(fù)載操作的第二終端;若否,則觸發(fā)步驟106,保持push服務(wù)器當(dāng)前的心跳連接狀態(tài)不變。在實(shí)際應(yīng)用中,管理員會(huì)綜合考慮push服務(wù)器的軟硬件配置設(shè)置以及push服務(wù)器的其它負(fù)載情況,確定push服務(wù)器的心跳負(fù)載閾值;該心跳負(fù)載閾值具體可以為push服務(wù)器在一個(gè)小時(shí)內(nèi)可以接收的最大心跳包的請(qǐng)求數(shù)。105、push服務(wù)器對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作;當(dāng)push服務(wù)器確定所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值之后, push服務(wù)器根據(jù)預(yù)置的規(guī)則確定第二終端,并對(duì)所述第二終端執(zhí)行減小push服務(wù)器的心跳負(fù)載的操作。具體的,第二終端的確定預(yù)置規(guī)則可以為以最新建立心跳連接的終端作為第二終端,也可以通過相關(guān)的參數(shù)計(jì)算確定出第二終端(詳細(xì)方法在后續(xù)的實(shí)施例中描述),第二終端還可以通過其他規(guī)則進(jìn)行確定,具體根據(jù)實(shí)際情況而定,此處不作限定。減小push服務(wù)器的心跳負(fù)載的操作可以為斷開與第二終端的心跳連接,也可以指示第二終端調(diào)整心跳值,使得push服務(wù)器的心跳負(fù)載減小,具體的操作內(nèi)容可以根據(jù)實(shí)際情況而定,此處不作限定。106、push服務(wù)器保持當(dāng)前的心跳連接狀態(tài)不變。push服務(wù)器保持當(dāng)前的心跳連接狀態(tài)不變,即push服務(wù)器保持所有已經(jīng)建立的心跳連接。在本發(fā)明實(shí)施例中,第一終端指的是當(dāng)前與push服務(wù)器建立心跳連接的終端,而第二終端指的是需要進(jìn)行減小心跳負(fù)載操作的終端,在實(shí)際應(yīng)用中,第一終端和第二終端可以為同一個(gè)終端(如,當(dāng)push服務(wù)器確定最新建立心跳連接的終端為第二終端時(shí))。在現(xiàn)有技術(shù)中,由于在終端與push服務(wù)器進(jìn)行心跳連接的過程中沒有考慮push 服務(wù)器的負(fù)載情況,因此,push服務(wù)器會(huì)不斷的與新的終端建立心跳連接,導(dǎo)致push服務(wù)器負(fù)荷超載,進(jìn)而可能出現(xiàn)宕機(jī),或者出現(xiàn)性能下降,處理超時(shí)的問題。本發(fā)明實(shí)施例中的push服務(wù)器在接收到終端發(fā)送的心跳包之后,根據(jù)所述心跳包中攜帶的所述終端的當(dāng)前心跳值計(jì)算與所述終端建立心跳連接之后的心跳負(fù)載,并判斷所述心跳負(fù)載是否大于所述push服務(wù)器的心跳負(fù)載閾值,從而在所述心跳負(fù)載大于所述心跳負(fù)載閾值時(shí),可以根據(jù)預(yù)置規(guī)則確定出需要調(diào)整的終端,對(duì)所述終端執(zhí)行減小心跳負(fù)載的操作,從而確保push服務(wù)器的心跳負(fù)載在其負(fù)荷范圍之內(nèi),避免了 push服務(wù)器超載所造成的不利影響。在實(shí)際應(yīng)用中,在push服務(wù)器收到心跳連接請(qǐng)求之前,可能心跳負(fù)載可能已經(jīng)不適于再建立心跳連接,本發(fā)明實(shí)施例提供了相應(yīng)的處理方案,請(qǐng)參閱圖2,本發(fā)明實(shí)施例中心跳連接方法的另一個(gè)實(shí)施例包括201、push服務(wù)器接收第一終端發(fā)送的心跳連接請(qǐng)求;push服務(wù)器接收第一終端發(fā)送的心跳連接請(qǐng)求。在第一終端需要與push服務(wù)器建立心跳連接時(shí),會(huì)向所述push服務(wù)器發(fā)送心跳連接請(qǐng)求。202、push服務(wù)器判斷當(dāng)前的狀態(tài)是否適于建立心跳連接;在接收得到心跳連接請(qǐng)求之后,push服務(wù)器判斷當(dāng)前的狀態(tài)是否適于建立心跳連接,若否,則觸發(fā)步驟203,向所述第一終端返回連接失敗響應(yīng),使得第一終端向心跳管理服務(wù)器查詢新的push服務(wù)器的地址;若是,則觸發(fā)步驟204,與第一終端建立心跳連接的步馬聚ο具體的,push服務(wù)器可以根據(jù)當(dāng)前的心跳負(fù)載判斷是否適于建立心跳連接,若當(dāng)前的心跳負(fù)載大于某個(gè)閾值,則當(dāng)前的push服務(wù)器不適于建立心跳連接,否則,則適于建立心跳連接。203、push服務(wù)器向所述第一終端返回連接失敗響應(yīng);在確定push服務(wù)器當(dāng)前的不適于建立心跳連接之后,push服務(wù)器向所述第一終端返回連接失敗響應(yīng),使得所述第一終端向心跳管理服務(wù)器查詢新的push服務(wù)器的地址。具體的,第一終端在接收到所述連接失敗響應(yīng)之后,可以向心跳管理服務(wù)器發(fā)送地址查詢消息,該地址查詢消息中攜帶有第一終端的入網(wǎng)信息和位置信息,使得心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢合適與所述第一終端建立心跳連接的push服務(wù)器的地址,從而與新的push服務(wù)器建立心跳連接。204、push服務(wù)器與第一終端建立心跳連接;
在確定push服務(wù)器當(dāng)前的適于建立心跳連接之后,push服務(wù)器與第一終端建立心跳連接。205、push服務(wù)器接收所述第一終端發(fā)送的心跳包;push服務(wù)器接收所述第一終端發(fā)送的心跳包,所述心跳包中攜帶有所述第一終端的當(dāng)前心跳值,所述當(dāng)前心跳值為第一終端當(dāng)前發(fā)送兩次心跳包之間的間隔時(shí)間。具體的,在第一終端向push服務(wù)器發(fā)送了心跳連接請(qǐng)求之后,若在預(yù)置時(shí)間內(nèi)第一終端未收到所述push服務(wù)器返回的連接失敗響應(yīng),第一終端則可以確定所述心跳連接建立成功,第一終端就可以向push服務(wù)器發(fā)送心跳包,保持與push服務(wù)器建立的心跳連接。206、push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載;push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載。在實(shí)際應(yīng)用中,一臺(tái)push服務(wù)器可以與多個(gè)終端建立心跳連接,所建立的心跳連接越多,push服務(wù)器所承受的心跳負(fù)載就越大,在計(jì)算所述心跳負(fù)載的算法中,所述當(dāng)前心跳值越大,則所述心跳負(fù)載越小。207、push服務(wù)器判斷心跳負(fù)載是否大于push服務(wù)器的心跳負(fù)載閾值;push服務(wù)器判斷所述心跳負(fù)載是否大于所述push服務(wù)器的心跳負(fù)載閾值,若是, 則觸發(fā)步驟208根據(jù)預(yù)置規(guī)則確定需要斷開連接的第二終端;若否,則觸發(fā)步驟210,保持 push服務(wù)器當(dāng)前的心跳連接狀態(tài)不變。在實(shí)際應(yīng)用中,管理員會(huì)綜合考慮push服務(wù)器的軟硬件配置設(shè)置以及push服務(wù)器的其它負(fù)載情況,確定push服務(wù)器的心跳負(fù)載閾值;該心跳負(fù)載閾值具體可以為push服務(wù)器在一個(gè)小時(shí)內(nèi)可以接收的最大心跳包的請(qǐng)求數(shù)。208、push服務(wù)器斷開與所述第二終端的心跳連接;當(dāng)push服務(wù)器確定所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值之后, push服務(wù)器根據(jù)預(yù)置的規(guī)則確定第二終端,并斷開與所述第二終端的心跳連接。具體的,第二終端的確定預(yù)置規(guī)則可以為以最新建立心跳連接的終端作為第二終端,也可以通過相關(guān)的參數(shù)計(jì)算確定出第二終端(詳細(xì)方法在后續(xù)的實(shí)施例中描述),第二終端還可以通過其他規(guī)則進(jìn)行確定,具體根據(jù)實(shí)際情況而定,此處不作限定。209、push服務(wù)器向所述第二終端發(fā)送負(fù)荷超載消息;在push服務(wù)器與所述第二終端斷開心跳連接之后,push服務(wù)器向所述第二終端發(fā)送負(fù)荷超載消息,通知所述第二終端所述push服務(wù)器已經(jīng)與所述第二終端斷開心跳連接,使得所述第二終端向心跳管理服務(wù)器查詢新的push服務(wù)器的地址。所述負(fù)荷超載消息用于通知終端,push服務(wù)器負(fù)荷超載,已經(jīng)與所述終端斷開心跳連接。具體的,在第二終端接到所述push服務(wù)器發(fā)送的負(fù)荷超載消息之后,獲知所述 push服務(wù)器已經(jīng)與本地?cái)嚅_心跳連接,此時(shí),第二終端可以向心跳管理服務(wù)器發(fā)送地址查詢消息,該地址查詢消息中攜帶有第一終端的入網(wǎng)信息和位置信息,使得心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢合適與所述第一終端建立心跳連接的push服務(wù)器的地址,從而與新的push服務(wù)器建立心跳連接。210、push服務(wù)器保持當(dāng)前的心跳連接狀態(tài)不變。
本實(shí)施例中的步驟210的內(nèi)容與前述圖1所示的實(shí)施例中步驟106的內(nèi)容相同, 此處不再贅述。在實(shí)際應(yīng)用中,push服務(wù)器可以通過計(jì)算與各個(gè)終端的匹配度來確定執(zhí)行減小心跳負(fù)載操作的終端,使得終端與push服務(wù)器的連接布局更加合理,請(qǐng)參閱圖3,本發(fā)明實(shí)施例中心跳連接方法的另一個(gè)實(shí)施例包括301、push服務(wù)器接收第一終端發(fā)送的心跳連接請(qǐng)求;push服務(wù)器接收第一終端發(fā)送的心跳連接請(qǐng)求。在第一終端需要與push服務(wù)器建立心跳連接時(shí),會(huì)向所述push服務(wù)器發(fā)送心跳連接請(qǐng)求。302、push服務(wù)器判斷當(dāng)前的狀態(tài)是否適于建立心跳連接;在接收得到心跳連接請(qǐng)求之后,push服務(wù)器判斷當(dāng)前的狀態(tài)是否適于建立心跳連接,若否,則觸發(fā)步驟303,向所述第一終端返回連接失敗響應(yīng),使得第一終端向心跳管理服務(wù)器查詢新的push服務(wù)器的地址;若是,則觸發(fā)步驟304,與第一終端建立心跳連接的步馬聚ο具體的,push服務(wù)器可以根據(jù)當(dāng)前的心跳負(fù)載判斷是否適于建立心跳連接,若當(dāng)前的心跳負(fù)載大于某個(gè)閾值,則當(dāng)前的push服務(wù)器不適于建立心跳連接,否則,則適于建立心跳連接。303、push服務(wù)器向所述第一終端返回連接失敗響應(yīng);在確定push服務(wù)器當(dāng)前的不適于建立心跳連接之后,push服務(wù)器向所述第一終端返回連接失敗響應(yīng),使得所述第一終端向心跳管理服務(wù)器查詢新的push服務(wù)器的地址。具體的,第一終端在接收到所述連接失敗響應(yīng)之后,可以向心跳管理服務(wù)器發(fā)送地址查詢消息,該地址查詢消息中攜帶有第一終端的入網(wǎng)信息和位置信息,使得心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢合適與所述第一終端建立心跳連接的push服務(wù)器的地址,從而與新的push服務(wù)器建立心跳連接。304、push服務(wù)器與第一終端建立心跳連接;在確定push服務(wù)器當(dāng)前的適于建立心跳連接之后,push服務(wù)器與第一終端建立心跳連接。305、push服務(wù)器接收所述第一終端發(fā)送的心跳包;push服務(wù)器接收所述第一終端發(fā)送的心跳包,所述心跳包中攜帶有所述第一終端的當(dāng)前心跳值,所述當(dāng)前心跳值為第一終端當(dāng)前發(fā)送兩次心跳包之間的間隔時(shí)間。所述心跳包中還可以攜帶有所述第一終端的入網(wǎng)信息和位置信息,該入網(wǎng)信息具體可以為移動(dòng)國家碼(MCC, Mobil Country Code)和移動(dòng)網(wǎng)絡(luò)碼(MNC,Mobil Network Code)。306、push服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息計(jì)算第一終端與push服務(wù)器的匹配度;在接收到所述心跳包之后,push服務(wù)器提取所述心跳包中攜帶的第一終端的入網(wǎng)信息和位置信息,并根據(jù)所述入網(wǎng)信息和位置信息計(jì)算第一終端與push服務(wù)器的匹配度。匹配度為根據(jù)預(yù)設(shè)的參數(shù)和算法計(jì)算出來的終端與某一臺(tái)Push服務(wù)器的匹配程度的值。預(yù)設(shè)算法的輸入?yún)?shù)可以為終端MCC、MNC、位置信息、心跳等,輸出為該終端與 Push服務(wù)器的匹配度。其中,算法可以是MCC、MNC、位置信息等每一項(xiàng)與Push服務(wù)器的參數(shù)匹配度(預(yù)設(shè)權(quán)值)的乘積,然后累加各項(xiàng)參數(shù)匹配度的乘積,得到該終端與Push服務(wù)器的匹配度(類似于為沒想輸入?yún)?shù)預(yù)設(shè)權(quán)重的加權(quán)運(yùn)算)。匹配度越高,說明該終端更適合與這臺(tái)Push服務(wù)器維持長連接;反之,則認(rèn)為該終端更不適合與這臺(tái)Push服務(wù)器維持長連接,當(dāng)Push服務(wù)器過載時(shí)可以優(yōu)先選擇將匹配度低終端轉(zhuǎn)移至其他的Push服務(wù)器。在實(shí)際應(yīng)用中,push服務(wù)器可以在本地建立一種與各個(gè)終端的匹配度列表,其中, 各個(gè)終端以匹配度的大小排列優(yōu)先級(jí)關(guān)系,每當(dāng)push服務(wù)器與一種終端建立心跳連接,即計(jì)算與該終端的匹配度,并把計(jì)算的結(jié)果更新僅該匹配度列表中??蛇x的,在計(jì)算得到第一終端和push服務(wù)器的匹配度之后,push服務(wù)器可以將所述匹配度發(fā)送給心跳管理服務(wù)器。因?yàn)樵趯?shí)際應(yīng)用中,心跳管理服務(wù)器負(fù)責(zé)統(tǒng)籌管理各個(gè)終端與push服務(wù)器的心跳連接,即心跳管理服務(wù)器記錄了各個(gè)push服務(wù)器的配置信息;心跳管理服務(wù)器可以根據(jù)終端與各個(gè)push服務(wù)器的匹配度為終端查詢其需要連接的push服務(wù)器,因此,為了減小心跳管理服務(wù)器計(jì)算匹配度時(shí)產(chǎn)生的負(fù)荷,push服務(wù)器可以將自身計(jì)算得到的與相應(yīng)終端的匹配度發(fā)送給心跳管理服務(wù)器,從而實(shí)現(xiàn)匹配度計(jì)算的負(fù)荷均攤, 優(yōu)化了網(wǎng)絡(luò)間的資源配置。307、push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載;push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載。在實(shí)際應(yīng)用中,一臺(tái)push服務(wù)器可以與多個(gè)終端建立心跳連接,所建立的心跳連接越多,push服務(wù)器所承受的心跳負(fù)載就越大,在計(jì)算所述心跳負(fù)載的算法中,所述當(dāng)前心跳值越大,則所述心跳負(fù)載越小。在本發(fā)明實(shí)施例中,步驟306和步驟307沒有嚴(yán)格的時(shí)序關(guān)系,即可以先執(zhí)行根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載的步驟,再執(zhí)行根據(jù)所述入網(wǎng)信息和位置信息計(jì)算第一終端與push服務(wù)器的匹配度的步驟,此處不作限定。308、push服務(wù)器判斷心跳負(fù)載是否大于push服務(wù)器的心跳負(fù)載閾值;push服務(wù)器判斷所述心跳負(fù)載是否大于所述push服務(wù)器的心跳負(fù)載閾值,若是, 則觸發(fā)步驟309,確定與所述push服務(wù)器的匹配度最低的終端為第二終端;若否,則觸發(fā)步驟311,保持push服務(wù)器當(dāng)前的心跳連接狀態(tài)不變。在實(shí)際應(yīng)用中,管理員會(huì)綜合考慮push服務(wù)器的軟硬件配置設(shè)置以及push服務(wù)器的其它負(fù)載情況,確定push服務(wù)器的心跳負(fù)載閾值;該心跳負(fù)載閾值具體可以為push服務(wù)器在一個(gè)小時(shí)內(nèi)可以接收的最大心跳包的請(qǐng)求數(shù)。309、push服務(wù)器確定匹配度最低的終端為第二終端;當(dāng)push服務(wù)器確定所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值之后, push服務(wù)器查詢所述匹配度列表,將與本地push服務(wù)器的匹配度最低的終端確定為第二終端。310、push服務(wù)器向所述第二終端發(fā)送心跳值調(diào)整消息;push服務(wù)器向所述第二終端發(fā)送心跳值調(diào)整消息,使得所述第二終端進(jìn)行心跳值的調(diào)整,并使用調(diào)整后的心跳值再次向所述push服務(wù)器發(fā)送心跳包。具體的,由于終端的心跳值越小,對(duì)push服務(wù)器產(chǎn)生的心跳負(fù)載就越大,因此,所述第二終端在接到到所述心跳值調(diào)整消息之后,可以對(duì)增大所述心跳值,然后使用增大后的心跳值再次向所述push服務(wù)器發(fā)送心跳包。
push服務(wù)器收到攜帶有調(diào)整后心跳值的心跳包后,再次根據(jù)新的心跳值進(jìn)行計(jì)算,若計(jì)算得到的心跳負(fù)載仍超過push服務(wù)器的心跳負(fù)載閾值,則push服務(wù)器繼續(xù)向所述第二終端發(fā)送心跳值調(diào)整消息,直到所述第二終端將心跳值調(diào)整到所述第二終端的最優(yōu)心跳值為止,若此時(shí)仍無法滿足所述push服務(wù)器的心跳負(fù)載的要求,所述第二終端與所述 push服務(wù)器就斷開心跳連接,所述第二終端向心跳管理服務(wù)器查詢新的push服務(wù)器的地址。311、push服務(wù)器保持當(dāng)前的心跳連接狀態(tài)不變。本實(shí)施例中的步驟311的內(nèi)容與前述圖1所示的實(shí)施例中步驟106的內(nèi)容相同, 此處不再贅述。本發(fā)明實(shí)施例引入了心跳管理服務(wù)器的應(yīng)用,實(shí)現(xiàn)了 push服務(wù)器間的資源共享, 在push服務(wù)器之間平衡了負(fù)載的分配,減少push服務(wù)器宕機(jī),處理超時(shí)等問題發(fā)生的概率;并且,對(duì)于終端來說,則避免因push服務(wù)器負(fù)荷超載的原因引起終端的連接異常或請(qǐng)求超時(shí)的問題,減少了終端的重連次數(shù),使得長連接更穩(wěn)定,使終端的功耗減小。上面是從push服務(wù)器的角度對(duì)本發(fā)明實(shí)施例中的心跳連接方法進(jìn)行的描述,下面從終端的角度對(duì)本發(fā)明實(shí)施例中的心跳連接方法再進(jìn)行描述,請(qǐng)參閱圖4,本發(fā)明實(shí)施例中的心跳連接方法另一實(shí)施例包括401、終端獲取需要進(jìn)行心跳連接的push服務(wù)器的地址;終端獲取需要進(jìn)行心跳連接的push服務(wù)器的地址??蛇x的,在實(shí)際應(yīng)用中,為了提高終端進(jìn)行心跳連接的效率,終端可以在本地存儲(chǔ)自身的心跳狀態(tài),該心跳狀態(tài)中包括有當(dāng)前心跳值,push服務(wù)器的地址,最優(yōu)心跳標(biāo)識(shí)和位置信息,還可以包括有心跳最大值, 心跳最小值等參數(shù);終端在進(jìn)行心跳連接時(shí),若該心跳狀態(tài)中存儲(chǔ)有push服務(wù)器的地址 (該push服務(wù)器為之前連接的最優(yōu)的push服務(wù)器),可以將心跳狀態(tài)中push服務(wù)器的地址作為需要進(jìn)行心跳連接的push服務(wù)器的地址。若心跳狀態(tài)中沒有存儲(chǔ)push服務(wù)器的地址,則終端可以向心跳管理服務(wù)器查詢需要進(jìn)行心跳連接的push服務(wù)器的地址。402、終端根據(jù)所述push服務(wù)器的地址與所述push服務(wù)器建立心跳連接;終端根據(jù)所述push服務(wù)器的地址與所述push服務(wù)器建立心跳連接;具體的,在終端需要與push服務(wù)器建立心跳連接時(shí),所述終端會(huì)向所述push服務(wù)器發(fā)送心跳連接請(qǐng)求, 若收到所述push服務(wù)器返回的連接成功響應(yīng),或在預(yù)置時(shí)間內(nèi)終端未收到所述push服務(wù)器返回的連接失敗響應(yīng),則終端可以確定所述心跳連接建立成功。403、終端根據(jù)所述push服務(wù)器的地址向所述push服務(wù)器發(fā)送心跳包。終端根據(jù)所述push服務(wù)器的地址向所述push服務(wù)器發(fā)送心跳包,所述心跳包攜帶有當(dāng)前心跳值,使得所述push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算心跳連接的負(fù)載情況。當(dāng)前心跳值為終端當(dāng)前發(fā)送兩次心跳包之間的間隔時(shí)間。具體的,所述push服務(wù)器接收到所述終端發(fā)送的心跳包之后,提取所述心跳包中攜帶的當(dāng)前心跳值,并根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載。所述push服務(wù)器可以根據(jù)所述心跳負(fù)載判斷當(dāng)前所述push服務(wù)器是否處于負(fù)荷超載的狀態(tài),若是,則可以執(zhí)行相應(yīng)的減小小心跳負(fù)載的操作。本發(fā)明實(shí)施例引入了心跳管理服務(wù)器的應(yīng)用,實(shí)現(xiàn)了 push服務(wù)器間的資源共享, 在push服務(wù)器之間平衡了負(fù)載的分配,減少push服務(wù)器宕機(jī),處理超時(shí)等問題發(fā)生的概
13率;并且,對(duì)于終端來說,則避免因push服務(wù)器負(fù)荷超載的原因引起終端的連接異?;蛘?qǐng)求超時(shí)的問題,減少了終端的重連次數(shù)。,使得長連接更穩(wěn)定,使終端的功耗減小。在實(shí)際應(yīng)用中,終端還可以向push服務(wù)器提供終端本地的參數(shù)信息,使得push服務(wù)器可以通過該終端的參數(shù)信息計(jì)算與終端的匹配度,使得終端與push服務(wù)器的連接布局更加合理,請(qǐng)參閱圖5,本發(fā)明實(shí)施例中心跳連接方法的另一個(gè)實(shí)施例包括501、終端判斷本地是否存儲(chǔ)有push服務(wù)器的地址;在需要建立心跳連接時(shí),終端判斷本地的心跳狀態(tài)中是否存儲(chǔ)有push服務(wù)器的地址,若有,則觸發(fā)步驟502,提取存儲(chǔ)的push服務(wù)器的地址;若沒有,則觸發(fā)步驟503,則向心跳管理服務(wù)器發(fā)送地址查詢消息。502、終端提取心跳狀態(tài)中存儲(chǔ)的push服務(wù)器的地址;終端提取心跳狀態(tài)中存儲(chǔ)的push服務(wù)器的地址,將該地址作為需要進(jìn)行心跳連接的push服務(wù)器的地址。心跳狀態(tài)中存儲(chǔ)的push服務(wù)器的地址為所述終端曾經(jīng)連接的最優(yōu)push服務(wù)器的地址,終端直接使用該push服務(wù)器的地址進(jìn)行心跳連接可以避免再次進(jìn)行最優(yōu)push服務(wù)器的地址的查詢,提高終端進(jìn)行心跳連接的效率。503、終端向心跳管理服務(wù)器發(fā)送地址查詢消息;終端向心跳管理服務(wù)器發(fā)送地址查詢消息,所述地址查詢消息中攜帶有所述終端的入網(wǎng)信息和位置信息,使得心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢合適與所述終端建立心跳連接的push服務(wù)器的地址。在實(shí)際應(yīng)用中,心跳管理服務(wù)器負(fù)責(zé)統(tǒng)籌管理各個(gè)終端與push服務(wù)器的心跳連接,即心跳管理服務(wù)器記錄了各個(gè)push服務(wù)器的配置信息;心跳管理服務(wù)器可以根據(jù)終端與各個(gè)push服務(wù)器的匹配度為終端查詢其需要連接的push服務(wù)器。504、終端接收所述心跳管理服務(wù)器返回的push服務(wù)器的地址;終端接收所述心跳管理服務(wù)器返回的push服務(wù)器的地址。具體的,心跳管理服務(wù)器接收到所述地址查詢消息之后,可以根據(jù)所述入網(wǎng)信息和位置信息計(jì)算終端與各個(gè)push 服務(wù)器的匹配度,再綜合考慮各個(gè)push服務(wù)器的負(fù)載狀態(tài),查詢合適與所述終端建立心跳連接的push服務(wù)器的地址。在心跳管理服務(wù)器查詢到合適與所述終端建立心跳連接的 push服務(wù)器的地址之后,向所述終端返回所述push服務(wù)器的地址。505、終端根據(jù)所述push服務(wù)器的地址與所述push服務(wù)器建立心跳連接;在終端獲取到push服務(wù)器的地址之后,根據(jù)所述push服務(wù)器的地址向所述push 服務(wù)器發(fā)送心跳連接請(qǐng)求,請(qǐng)求與所述push服務(wù)器建立心跳連接。506、終端判斷心跳連接是否成功;在終端向所述push服務(wù)器發(fā)送心跳連接請(qǐng)求之后,若收到所述push服務(wù)器返回的連接成功響應(yīng),或在預(yù)置時(shí)間內(nèi)終端未收到所述push服務(wù)器返回的連接失敗響應(yīng),則終端可以確定所述心跳連接建立成功,并觸發(fā)步驟507;若終端在預(yù)置時(shí)間內(nèi)收到所述push 服務(wù)器返回的連接失敗響應(yīng),則終端可以確定所述心跳連接建立失敗,并再次觸發(fā)步驟503 以及504,查詢新的push服務(wù)器的地址。507、終端向心跳連接成功的push服務(wù)器發(fā)送心跳包;終端向心跳連接成功的push服務(wù)器發(fā)送心跳包,所述心跳包攜帶有當(dāng)前心跳值,終端的入網(wǎng)信息和位置信息;使得所述push服務(wù)器可以根據(jù)所述當(dāng)前心跳值計(jì)算心跳連接的負(fù)載情況,并根據(jù)所述入網(wǎng)信息和位置信息計(jì)算出所述終端與所述push服務(wù)器的匹配度。可選的,在終端向所述push服務(wù)器發(fā)送心跳包之后,更新并存儲(chǔ)所述終端的心跳狀態(tài),具體的,更新心跳狀態(tài)可以包括更新push服務(wù)器的地址、當(dāng)前心跳值和終端當(dāng)前的位置信息,并且,當(dāng)終端確認(rèn)所述當(dāng)前心跳值為最優(yōu)心跳值時(shí),為所述當(dāng)前心跳值添加最優(yōu)心跳標(biāo)識(shí)。在實(shí)際應(yīng)用中,若終端首次發(fā)起心跳連接的流程,則所述當(dāng)前心跳值為本地預(yù)設(shè)的初始心跳值;若終端的心跳狀態(tài)中存儲(chǔ)有當(dāng)前心跳值(前一次進(jìn)行心跳連接存儲(chǔ)下來的),則直接使用所述心跳狀態(tài)中存儲(chǔ)的當(dāng)前心跳值發(fā)送心跳包,避免重復(fù)進(jìn)行最優(yōu)心跳值
得調(diào)整。508、終端接收所述push服務(wù)器發(fā)送的負(fù)荷超載消息;終端接收所述push服務(wù)器發(fā)送的負(fù)荷超載消息,并觸發(fā)步驟503以及504,查詢新的push服務(wù)器的地址,以再次建立新的心跳連接。具體的,若push服務(wù)器在管理心跳連接狀態(tài)的過程中,確定需要斷開與本地終端的心跳連接,則所述push服務(wù)器會(huì)向本地終端發(fā)送負(fù)荷超載消息,以通知本地終端與所述push服務(wù)器的心跳連接已經(jīng)斷開,使得本地終端可以再次向心跳管理服務(wù)器查詢新的 push服務(wù)器的地址。在實(shí)際應(yīng)用中,當(dāng)push服務(wù)器確定了需要執(zhí)行減小心跳負(fù)載操作的終端后,可以不必直接斷開與所述終端的心跳連接,可以先指示所述終端先進(jìn)行心跳值得調(diào)整,具體請(qǐng)參閱圖6,本發(fā)明實(shí)施例中心跳連接方法的另一個(gè)實(shí)施例包括601、終端接收push服務(wù)器發(fā)送的心跳值調(diào)整消息;本發(fā)明實(shí)施例發(fā)生在與push服務(wù)器建立心跳連接之后,具體建立心跳連接的過程可以參考前述圖4和圖5實(shí)施例,此處不再贅述。終端接收push服務(wù)器發(fā)送的心跳值調(diào)整消息。具體的,當(dāng)push服務(wù)器根據(jù)預(yù)置規(guī)則確定本地終端為需要執(zhí)行減小心跳負(fù)載操作的終端之后,向所述終端發(fā)生心跳值調(diào)整消息,指示所述終端進(jìn)行心跳值調(diào)整。602、終端根據(jù)心跳值調(diào)整消息使用預(yù)置的心跳算法調(diào)整當(dāng)前心跳值;終端根據(jù)心跳值調(diào)整消息使用預(yù)置的心跳算法調(diào)整向所述push服務(wù)器發(fā)送的心跳包所攜帶的當(dāng)前心跳值。具體的,預(yù)置的心跳算法可以為步徑法,終端預(yù)設(shè)有心跳最小值和步長;終端以所述心跳最小值作為初始的當(dāng)前心跳值進(jìn)行心跳包的發(fā)送,若當(dāng)前心跳值不能滿足push服務(wù)器的要求時(shí),則當(dāng)前心跳值加上一個(gè)步長再進(jìn)行心跳包的發(fā)送。603、終端判斷調(diào)整后心跳值是否大于所述終端的最優(yōu)心跳值;終端判斷調(diào)整后心跳值是否大于所述終端的最優(yōu)心跳值,若是,則觸發(fā)步驟605, 向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包;若否,則觸發(fā)步驟604,向所述 push服務(wù)器發(fā)送攜帶有調(diào)整后心跳值的心跳包;所述最優(yōu)心跳值為最接近防火墻超時(shí)時(shí)間,且小于或等于防火墻超時(shí)時(shí)間的心跳值。因此,若所述整后心跳值大于所述終端的最優(yōu)心跳值,則所述整后心跳值有可能大于防火墻超時(shí)時(shí)間,若根據(jù)所述整后心跳值發(fā)送心跳包的話,push服務(wù)器就會(huì)因?yàn)殚L時(shí)間沒有接到終端的心跳包而斷開與所述終端的心跳連接,因此,當(dāng)調(diào)整后心跳值大于所述終端的最優(yōu)心跳值時(shí),則使用最優(yōu)心跳值所述push服務(wù)器發(fā)送心跳包。604、終端向所述push服務(wù)器發(fā)送攜帶有所述調(diào)整后心跳值的心跳包;當(dāng)終端確認(rèn)所述調(diào)整后心跳值小于或等于所述終端的最優(yōu)心跳值時(shí),向所述push 服務(wù)器發(fā)送攜帶有所述調(diào)整后心跳值的心跳包。605、終端向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包;當(dāng)終端確認(rèn)所述調(diào)整后心跳值大于所述終端的最優(yōu)心跳值時(shí),向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包。606、終端向心跳管理服務(wù)器發(fā)送地址查詢消息;若向push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包之后,仍接收到所述push 服務(wù)器返回的心跳值調(diào)整消息,則終端與所述心跳服務(wù)斷開的心跳連接,所述終端可以向心跳管理服務(wù)器發(fā)送地址查詢消息,所述地址查詢消息中攜帶有所述終端的入網(wǎng)信息和位置信息,使得心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢合適與所述終端建立心跳連接的push服務(wù)器的地址。在實(shí)際應(yīng)用中,心跳管理服務(wù)器負(fù)責(zé)統(tǒng)籌管理各個(gè)終端與push服務(wù)器的心跳連接,即心跳管理服務(wù)器記錄了各個(gè)push服務(wù)器的配置信息;心跳管理服務(wù)器可以根據(jù)終端與各個(gè)push服務(wù)器的匹配度為終端查詢其需要連接的push服務(wù)器。607、終端接收所述心跳管理服務(wù)器返回的push服務(wù)器的地址。終端接收所述心跳管理服務(wù)器返回的push服務(wù)器的地址。具體的,心跳管理服務(wù)器接收到所述地址查詢消息之后,可以根據(jù)所述入網(wǎng)信息和位置信息計(jì)算終端與各個(gè)push 服務(wù)器的匹配度,再綜合考慮各個(gè)push服務(wù)器的負(fù)載狀態(tài),查詢合適與所述終端建立心跳連接的push服務(wù)器的地址。在心跳管理服務(wù)器查詢到合適與所述終端建立心跳連接的 push服務(wù)器的地址之后,向所述終端返回所述push服務(wù)器的地址。下面對(duì)用于執(zhí)行上述心跳連接方法的本發(fā)明push服務(wù)器的實(shí)施例進(jìn)行說明,其邏輯結(jié)構(gòu)請(qǐng)參考圖7,本發(fā)明實(shí)施例中push服務(wù)器的一個(gè)實(shí)施例包括心跳連接單元701,用于push服務(wù)器與第一終端建立心跳連接;心跳接收單元702,用于接收所述第一終端發(fā)送的心跳包,所述心跳包中攜帶有所述第一終端的當(dāng)前心跳值;負(fù)載計(jì)算單元703,用于push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載;終端確定單元704,用于若所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值, 則根據(jù)預(yù)置規(guī)則確定第二終端;負(fù)載處理單元705,用于在確定所述第二終端之后,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。本發(fā)明實(shí)施例中的push服務(wù)器還可以進(jìn)一步包括請(qǐng)求接收單元706,用于接收第一終端發(fā)送的心跳連接請(qǐng)求;連接判斷單元707,用于判斷所述push服務(wù)器是否適于建立心跳連接,若是,則觸發(fā)失敗響應(yīng)單元708 ;若否,則觸發(fā)所述心跳連接單元701 ;
失敗響應(yīng)單元708,用于向所述第一終端返回連接失敗響應(yīng)。匹配度計(jì)算單元709,用于在接收第一終端發(fā)送的心跳包之后,根據(jù)所述心跳包攜帶的入網(wǎng)信息和位置信息計(jì)算所述第一終端與push服務(wù)器的匹配度;匹配度發(fā)送單元710,用于在根據(jù)入網(wǎng)信息和位置信息計(jì)算所述第一終端與所述 push服務(wù)器的匹配度之后,向心跳管理服務(wù)器發(fā)送所述第一終端與所述push服務(wù)器的匹配度。本發(fā)明實(shí)施例中的負(fù)載處理單元705可以包括連接斷開模塊7051和超載通知模塊7052,或調(diào)整通知模塊7053 ;所述連接斷開模塊7051用于在確定所述第二終端之后,斷開與所述第二終端的心跳連接;所述超載通知模塊7052用于在斷開與所述第二終端的心跳連接之后,通過負(fù)荷超載消息通知所述第二終端所述push服務(wù)器與所述第二終端斷開心跳連接,使得所述第二終端向心跳管理服務(wù)器查詢新的push服務(wù)器的地址;所述調(diào)整通知模塊7053用于在確定所述第二終端之后,向所述第二終端發(fā)送心跳值調(diào)整消息,使得所述第二終端進(jìn)行心跳值的調(diào)整,并使用調(diào)整后的心跳值再次向所述 push服務(wù)器發(fā)送心跳包。本發(fā)明實(shí)施例中的終端確定單元704可以包括第一確定模塊7041,用于若所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值, 則確定最新建立心跳連接的終端為第二終端;或,第二確定模塊7042,用于若所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則確定與所述push服務(wù)器的匹配度最低的終端為第二終端。本發(fā)明實(shí)施例push服務(wù)器中各個(gè)單元具體的交互過程如下請(qǐng)求接收單元706接收第一終端發(fā)送的心跳連接請(qǐng)求。在第一終端需要與push 服務(wù)器建立心跳連接時(shí),會(huì)向所述push服務(wù)器發(fā)送心跳連接請(qǐng)求。在接收得到心跳連接請(qǐng)求之后,連接判斷單元707判斷當(dāng)前的狀態(tài)是否適于建立心跳連接,若否,則觸發(fā)失敗響應(yīng)單元708向所述第一終端返回連接失敗響應(yīng),使得第一終端向心跳管理服務(wù)器查詢新的push服務(wù)器的地址;具體的,第一終端在接收到所述連接失敗響應(yīng)之后,可以向心跳管理服務(wù)器發(fā)送地址查詢消息,該地址查詢消息中攜帶有第一終端的入網(wǎng)信息和位置信息,使得心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢合適與所述第一終端建立心跳連接的push服務(wù)器的地址,從而與新的push服務(wù)器建立心跳連接。 若是,則觸發(fā)心跳連接單元701與第一終端建立心跳連接。在與第一終端建立心跳連接之后,心跳接收單元702接收所述第一終端發(fā)送的心跳包,所述心跳包中攜帶有所述第一終端的當(dāng)前心跳值,所述當(dāng)前心跳值為第一終端當(dāng)前發(fā)送兩次心跳包之間的間隔時(shí)間。具體的,在第一終端向push服務(wù)器發(fā)送了心跳連接請(qǐng)求之后,若在預(yù)置時(shí)間內(nèi)第一終端未收到所述push服務(wù)器返回的連接失敗響應(yīng),第一終端則可以確定所述心跳連接建立成功,第一終端就可以向push服務(wù)器發(fā)送心跳包,保持與push 服務(wù)器建立的心跳連接??蛇x的,若所述心跳包中攜帶有所述第一終端的入網(wǎng)信息(該入網(wǎng)信息具體可以為MCC和MNC)和位置信息,則可以觸發(fā)匹配度計(jì)算單元709根據(jù)所述心跳包攜帶的入網(wǎng)信
17息和位置信息計(jì)算所述第一終端與push服務(wù)器的匹配度;具體的,push服務(wù)器可以為所述入網(wǎng)信息和位置信息等各個(gè)參數(shù)預(yù)設(shè)相應(yīng)的權(quán)重,然后通過加權(quán)運(yùn)算得到第一終端與push 服務(wù)器的匹配度。在實(shí)際應(yīng)用中,push服務(wù)器可以在本地建立一種與各個(gè)終端的匹配度列表,其中,各個(gè)終端以匹配度的大小排列優(yōu)先級(jí)關(guān)系,每當(dāng)push服務(wù)器與一種終端建立心跳連接,即計(jì)算與該終端的匹配度,并把計(jì)算的結(jié)果更新僅該匹配度列表中。可選的,在計(jì)算得到第一終端和push服務(wù)器的匹配度之后,還可以觸發(fā)匹配度發(fā)送單元710可以將所述匹配度發(fā)送給心跳管理服務(wù)器。因?yàn)樵趯?shí)際應(yīng)用中,心跳管理服務(wù)器負(fù)責(zé)統(tǒng)籌管理各個(gè)終端與push服務(wù)器的心跳連接,即心跳管理服務(wù)器記錄了各個(gè)push 服務(wù)器的配置信息;心跳管理服務(wù)器可以根據(jù)終端與各個(gè)push服務(wù)器的匹配度為終端查詢其需要連接的push服務(wù)器,因此,為了減小心跳管理服務(wù)器計(jì)算匹配度時(shí)產(chǎn)生的負(fù)荷, push服務(wù)器可以將自身計(jì)算得到的與相應(yīng)終端的匹配度發(fā)送給心跳管理服務(wù)器,從而實(shí)現(xiàn)匹配度計(jì)算的負(fù)荷均攤,優(yōu)化了網(wǎng)絡(luò)間的資源配置。在接收到所述心跳包之后,負(fù)載計(jì)算單元703根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載。在實(shí)際應(yīng)用中,一臺(tái)push服務(wù)器可以與多個(gè)終端建立心跳連接,所建立的心跳連接越多,push服務(wù)器所承受的心跳負(fù)載就越大,在計(jì)算所述心跳負(fù)載的算法中,所述當(dāng)前心跳值越大,則所述心跳負(fù)載越小。在計(jì)算得到所述心跳負(fù)載之后,終端確定單元704判斷所述心跳負(fù)載是否大于所述push服務(wù)器的心跳負(fù)載閾值,若是,則根據(jù)預(yù)置規(guī)則確定需要斷開連接的第二終端;若否,則保持push服務(wù)器當(dāng)前的心跳連接狀態(tài)不變。可選的,在確定需要斷開連接的第二終端時(shí),可以由第一確定模塊7041確定最新建立心跳連接的終端為第二終端;或由第二確定模塊7042確定與所述push服務(wù)器的匹配度最低的終端為第二終端。在確定了第二終端之后,負(fù)載處理單元705,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。具體的,可以由連接斷開模塊7051斷開與所述第二終端的心跳連接,并由超載通知模塊7052通過負(fù)荷超載消息通知所述第二終端所述push服務(wù)器與所述第二終端斷開心跳連接,使得所述第二終端向心跳管理服務(wù)器查詢新的push服務(wù)器的地址;也可以由調(diào)整通知模塊7053向所述第二終端發(fā)送心跳值調(diào)整消息,使得所述第二終端進(jìn)行心跳值的調(diào)整, 由于終端的心跳值越小,對(duì)push服務(wù)器產(chǎn)生的心跳負(fù)載就越大,因此,所述第二終端在接到到所述心跳值調(diào)整消息之后,可以對(duì)增大所述心跳值,然后使用增大后的心跳值再次向所述push服務(wù)器發(fā)送心跳包。在實(shí)際應(yīng)用中,具體使用哪種減小心跳負(fù)載的操作可以根據(jù)實(shí)際情況而定,此處不作限定。下面對(duì)用于執(zhí)行上述心跳連接方法的本發(fā)明終端的實(shí)施例進(jìn)行說明,其邏輯結(jié)構(gòu)請(qǐng)參考圖8,本發(fā)明實(shí)施例中終端的一個(gè)實(shí)施例包括地址獲取單元801,用于獲取需要進(jìn)行心跳連接的push服務(wù)器的地址;連接單元802,用于根據(jù)所述push服務(wù)器的地址與所述push服務(wù)器建立心跳連接;心跳包發(fā)送單元803,用于在建立所述心跳連接之后,根據(jù)所述push服務(wù)器的地址向所述push服務(wù)器發(fā)送心跳包,所述心跳包攜帶有當(dāng)前心跳值,使得所述push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算心跳連接的心跳負(fù)載,當(dāng)所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則所述push服務(wù)器根據(jù)預(yù)置規(guī)則確定第二終端,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。本發(fā)明實(shí)施例中的終端還可以進(jìn)一步包括地址查詢單元804,用于向心跳管理服務(wù)器發(fā)送地址查詢消息,所述地址查詢消息中攜帶有所述終端的入網(wǎng)信息和位置信息;地址接收單元805,用于接收所述心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢到的需要進(jìn)行心跳連接的push服務(wù)器的地址;狀態(tài)更新單元806,用于在根據(jù)push服務(wù)器的地址向所述push服務(wù)器發(fā)送心跳包之后,更新并存儲(chǔ)所述終端的心跳狀態(tài),使得所述終端再次發(fā)起心跳連接時(shí),根據(jù)所述心跳狀態(tài)進(jìn)行心跳連接;所述心跳狀態(tài)包括當(dāng)前心跳值,push服務(wù)器的地址,最優(yōu)心跳標(biāo)識(shí)和
位置信息。失敗重連單元807,用于若所述終端與所述push服務(wù)器建立心跳連接失敗,則觸發(fā)所述地址查詢單元804和地址接收單元805,并根據(jù)所述地址接收單元接收到的push服務(wù)器的地址再次觸發(fā)所述連接單元802。超載消息接收單元808,用于接收所述push服務(wù)器發(fā)送的負(fù)荷超載消息,并觸發(fā)所述地址查詢單元804和地址接收單元805,并根據(jù)所述地址接收單元接收到的push服務(wù)器的地址再次觸發(fā)所述連接單元802。調(diào)整消息接收單元809,用于接收所述push服務(wù)器發(fā)送的心跳值調(diào)整消息;調(diào)整單元810,用于根據(jù)心跳值調(diào)整消息使用預(yù)置的心跳算法調(diào)整所述當(dāng)前心跳值;心跳值判斷單元811,用于判斷調(diào)整后心跳值是否大于所述終端的最優(yōu)心跳值,若是,則觸發(fā)所述心跳包發(fā)送單元803向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包;若否,則觸發(fā)觸發(fā)所述心跳包發(fā)送單元803向所述push服務(wù)器發(fā)送攜帶有調(diào)整后心跳值的心跳包;所述調(diào)整消息接收單元809還用于若向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包之后,仍接收到所述push服務(wù)器返回的心跳值調(diào)整消息,則觸發(fā)失敗重連單元 807。本發(fā)明實(shí)施例中的地址獲取單元801還可以包括地址判斷模塊8011和地址提取模塊8012 ;所述地址判斷模塊8011用于判斷所述終端是否存儲(chǔ)有push服務(wù)器的地址,若有, 則觸發(fā)地址提取模塊8012 ;若沒有,觸發(fā)地址查詢單元804 ;所述地址提取模塊8012用于提取終端存儲(chǔ)的push服務(wù)器的地址。本發(fā)明實(shí)施例push服務(wù)器中各個(gè)單元具體的交互過程如下 在需要建立心跳連接時(shí),地址獲取單元801獲取需要進(jìn)行心跳連接的push服務(wù)器的地址。 可選的,可以由地址獲取單元801的地址判斷模塊8011判斷本地的心跳狀態(tài)中是否存儲(chǔ)有push服務(wù)器的地址;若有,則觸發(fā)地址提取模塊8012提取終端存儲(chǔ)的push服務(wù)器的地址;若沒有,觸發(fā)地址查詢單元804向心跳管理服務(wù)器發(fā)送地址查詢消息,所述地址查詢消息中攜帶有所述終端的入網(wǎng)信息和位置信息,使得心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢合適與所述終端建立心跳連接的push服務(wù)器的地址;在向所述push服務(wù)器發(fā)送了地址查詢消息之后,地址接收單元805接收所述心跳管理服務(wù)器返回的push服務(wù)器的地址。具體的,心跳管理服務(wù)器接收到所述地址查詢消息之后,可以根據(jù)所述入網(wǎng)信息和位置信息計(jì)算終端與各個(gè)push服務(wù)器的匹配度,再綜合考慮各個(gè)push服務(wù)器的負(fù)載狀態(tài),查詢合適與所述終端建立心跳連接的push服務(wù)器的地址。在心跳管理服務(wù)器查詢到合適與所述終端建立心跳連接的push服務(wù)器的地址之后,向所述終端返回所述push服務(wù)器的地址。在終端獲取到push服務(wù)器的地址之后,連接單元802根據(jù)所述push服務(wù)器的地址向所述push服務(wù)器發(fā)送心跳連接請(qǐng)求,請(qǐng)求與所述push服務(wù)器建立心跳連接;在向所述 push服務(wù)器發(fā)送心跳連接請(qǐng)求之后,若收到所述push服務(wù)器返回的連接成功響應(yīng),或在預(yù)置時(shí)間內(nèi)終端未收到所述push服務(wù)器返回的連接失敗響應(yīng),則可以確定所述心跳連接建立成功,并觸發(fā)心跳包發(fā)送單元803 ;若終端在預(yù)置時(shí)間內(nèi)收到所述push服務(wù)器返回的連接失敗響應(yīng),則可以確定所述心跳連接建立失敗,則觸發(fā)失敗重連單元807。在終端與push服務(wù)器的心跳連接建立成功之后,心跳包發(fā)送單元803向心跳連接成功的push服務(wù)器發(fā)送心跳包,所述心跳包攜帶有當(dāng)前心跳值,終端的入網(wǎng)信息和位置信息;使得所述push服務(wù)器可以根據(jù)所述當(dāng)前心跳值計(jì)算心跳連接的負(fù)載情況,并根據(jù)所述入網(wǎng)信息和位置信息計(jì)算出所述終端與所述push服務(wù)器的匹配度??蛇x的,在向所述push服務(wù)器發(fā)送心跳包之后,可以觸發(fā)狀態(tài)更新單元806更新并存儲(chǔ)所述終端的心跳狀態(tài),使得所述終端再次發(fā)起心跳連接時(shí),根據(jù)所述心跳狀態(tài)進(jìn)行心跳連接;所述心跳狀態(tài)包括當(dāng)前心跳值,push服務(wù)器的地址,最優(yōu)心跳標(biāo)識(shí)和位置信息。在實(shí)際應(yīng)用中,若終端首次發(fā)起心跳連接的流程,則所述當(dāng)前心跳值為本地預(yù)設(shè)的初始心跳值;若終端的心跳狀態(tài)中存儲(chǔ)有當(dāng)前心跳值(前一次進(jìn)行心跳連接存儲(chǔ)下來的),則直接使用所述心跳狀態(tài)中存儲(chǔ)的當(dāng)前心跳值發(fā)送心跳包,避免重復(fù)進(jìn)行最優(yōu)心跳值得調(diào)整。根據(jù)實(shí)際情況可選的,若終端的超載消息接收單元808接收到所述push服務(wù)器發(fā)送的負(fù)荷超載消息,則觸發(fā)所述地址查詢單元804和地址接收單元805,并根據(jù)所述地址接收單元接收到的push服務(wù)器的地址再次觸發(fā)所述連接單元802。具體的,若push服務(wù)器在管理心跳連接狀態(tài)的過程中,確定需要斷開與本地終端的心跳連接,則所述push服務(wù)器會(huì)向本地終端發(fā)送負(fù)荷超載消息,以通知本地終端與所述push服務(wù)器的心跳連接已經(jīng)斷開, 使得本地終端可以再次向心跳管理服務(wù)器查詢新的push服務(wù)器的地址。根據(jù)實(shí)際情況可選的,若終端的調(diào)整消息接收單元809接收到push服務(wù)器發(fā)送的心跳值調(diào)整消息,則觸發(fā)調(diào)整單元810使用預(yù)置的心跳算法調(diào)整向所述push服務(wù)器發(fā)送的心跳包所攜帶的當(dāng)前心跳值。具體的,預(yù)置的心跳算法可以為步徑法,終端預(yù)設(shè)有心跳最小值和步長;終端以所述心跳最小值作為初始的當(dāng)前心跳值進(jìn)行心跳包的發(fā)送,若當(dāng)前心跳值不能滿足push服務(wù)器的要求時(shí),則當(dāng)前心跳值加上一個(gè)步長再進(jìn)行心跳包的發(fā)送。在得到調(diào)整后心跳值之后,心跳值判斷單元811判斷調(diào)整后心跳值是否大于所述終端的最優(yōu)心跳值,若是,則觸發(fā)所述心跳包發(fā)送單元803向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包;若否,則觸發(fā)觸發(fā)所述心跳包發(fā)送單元803向所述push服務(wù)器發(fā)送攜帶有調(diào)整后心跳值的心跳包。根據(jù)實(shí)際情況可選的,若向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包之后,調(diào)整消息接收單元809還接收到所述push服務(wù)器返回的心跳值調(diào)整消息,則觸發(fā)失敗重連單元807。下面對(duì)用于執(zhí)行上述心跳連接方法的本發(fā)明心跳連接系統(tǒng)的實(shí)施例進(jìn)行說明,其邏輯結(jié)構(gòu)請(qǐng)參考圖9,本發(fā)明實(shí)施例中心跳連接系統(tǒng)的一個(gè)實(shí)施例包括push服務(wù)器901,終端902和心跳管理服務(wù)器903 ;所述終端902用于判斷所述終端是否存儲(chǔ)有push服務(wù)器的地址,若有,則提取存儲(chǔ)的push服務(wù)器的地址;若沒有,則向心跳管理服務(wù)器發(fā)送地址查詢消息,所述地址查詢消息中攜帶有所述終端的入網(wǎng)信息和位置信息;接收所述心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢到的需要進(jìn)行心跳連接的push服務(wù)器的地址;根據(jù)所述push服務(wù)器的地址與所述push服務(wù)器建立心跳連接;若所述終端與所述push服務(wù)器建立心跳連接失敗, 則所述心跳管理服務(wù)器查詢新的push服務(wù)器的地址;若所述終端與所述push服務(wù)器建立心跳連接成功,則根據(jù)所述push服務(wù)器的地址向所述push服務(wù)器發(fā)送心跳包,所述心跳包攜帶有當(dāng)前心跳值,使得所述push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算心跳連接的負(fù)載情況;所述push服務(wù)器901用于接收終端發(fā)送的心跳連接請(qǐng)求;判斷所述push服務(wù)器是否適于建立心跳連接,若是,則向所述終端返回連接失敗響應(yīng);若否,則與所述終端建立心跳連接;建立心跳連接之后,接收所述終端發(fā)送的心跳包;根據(jù)所述當(dāng)前心跳值計(jì)算與所述終端建立心跳連接之后的心跳負(fù)載;若所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則根據(jù)預(yù)置規(guī)則確定需要調(diào)整的終端,對(duì)所述需要調(diào)整的終端執(zhí)行減小心跳負(fù)載的操作;所述心跳管理服務(wù)器903用于接收所述終端發(fā)送的地址查詢消息,根據(jù)所述地址查詢消息中攜帶的入網(wǎng)信息和位置信息查詢所述終端需要進(jìn)行心跳連接的push服務(wù)器的地址;向所述終端返回查詢到的push服務(wù)器的地址。所述終端根據(jù)push服務(wù)器的地址向所述push服務(wù)器發(fā)送的心跳包中還攜帶有所述終端的入網(wǎng)信息和位置信息;所述push服務(wù)器還用于根據(jù)所述終端的入網(wǎng)信息和位置信息計(jì)算所述終端與所述push服務(wù)器的匹配度,并向所述心跳管理服務(wù)器發(fā)送所述匹配度;所述根據(jù)預(yù)置規(guī)則確定需要調(diào)整的終端,還包括確定與所述push服務(wù)器的匹配度最低的終端為需要調(diào)整的終端;所述心跳管理服務(wù)器還用于根據(jù)所述終端和各個(gè)push服務(wù)器的匹配度查詢所述終端需要進(jìn)行心跳連接的push服務(wù)器的地址。本發(fā)明實(shí)施例中心跳連接系統(tǒng)的具體操作流程可以參閱上述方法實(shí)施例,此處不再贅述。在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
2權(quán)利要求
1.一種心跳連接方法,其特征在于,包括推送push服務(wù)器與第一終端建立心跳連接;所述push服務(wù)器接收所述第一終端發(fā)送的心跳包,所述心跳包中攜帶有所述第一終端的當(dāng)前心跳值;所述push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載;若所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則根據(jù)預(yù)置規(guī)則確定第二終端,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述push服務(wù)器與第一終端建立心跳連接之前,包括push服務(wù)器接收第一終端發(fā)送的心跳連接請(qǐng)求;判斷所述push服務(wù)器是否適于建立心跳連接,若否,則向所述第一終端返回連接失敗響應(yīng);若是,則觸發(fā)所述與第一終端建立心跳連接的步驟。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述對(duì)第二終端執(zhí)行減小心跳負(fù)載的操作,包括斷開與所述第二終端的心跳連接,并通過負(fù)荷超載消息通知所述第二終端所述push 服務(wù)器與所述第二終端斷開心跳連接,使得所述第二終端向心跳管理服務(wù)器查詢新的push 服務(wù)器的地址;或,向所述第二終端發(fā)送心跳值調(diào)整消息,使得所述第二終端進(jìn)行心跳值的調(diào)整,并使用調(diào)整后的心跳值再次向所述push服務(wù)器發(fā)送心跳包。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,所述心跳包中還攜帶有所述第一終端的入網(wǎng)信息和位置信息;所述接收所述第一終端發(fā)送的心跳包之后,還包括所述push服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息計(jì)算所述第一終端與所述push服務(wù)器的匹配度;所述根據(jù)預(yù)置規(guī)則確定第二終端具體包括確定與所述push服務(wù)器的匹配度最低的終端為第二終端。
5.一種心跳連接方法,其特征在于,包括終端獲取需要進(jìn)行心跳連接的push服務(wù)器的地址;所述終端根據(jù)所述push服務(wù)器的地址與所述push服務(wù)器建立心跳連接;所述終端根據(jù)所述push服務(wù)器的地址向所述push服務(wù)器發(fā)送心跳包,所述心跳包攜帶有當(dāng)前心跳值,使得所述push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算心跳連接的心跳負(fù)載,當(dāng)所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則所述push服務(wù)器根據(jù)預(yù)置規(guī)則確定第二終端,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述獲取需要進(jìn)行心跳連接的push服務(wù)器的地址,包括判斷所述終端是否存儲(chǔ)有push服務(wù)器的地址;若所述終端存儲(chǔ)有push服務(wù)器的地址,則提取存儲(chǔ)的push服務(wù)器的地址;若所述終端沒有存儲(chǔ)push服務(wù)器的地址,則向心跳管理服務(wù)器發(fā)送地址查詢消息,所述地址查詢消息中攜帶有所述終端的入網(wǎng)信息和位置信息;接收所述心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢到的需要進(jìn)行心跳連接的push服務(wù)器的地址。
7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述心跳包還攜帶有所述終端的入網(wǎng)信息和位置信息,使得所述push服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息計(jì)算所述終端與所述push服務(wù)器的匹配度。
8.根據(jù)權(quán)利要求5至7任意一項(xiàng)所述的方法,其特征在于,所述方法還包括若所述終端與所述push服務(wù)器建立心跳連接失敗,則所述終端向心跳管理服務(wù)器發(fā)送地址查詢消息,所述地址查詢消息中攜帶有所述終端的入網(wǎng)信息和位置信息;所述終端接收所述心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢到的需要進(jìn)行心跳連接的push服務(wù)器的地址;所述終端根據(jù)所述心跳管理服務(wù)器返回的push服務(wù)器的地址再次建立心跳連接。
9.根據(jù)權(quán)利要求5至8任意一項(xiàng)所述的方法,其特征在于,所述根據(jù)所述push服務(wù)器的地址向所述push服務(wù)器發(fā)送心跳包之后,包括接收所述push服務(wù)器發(fā)送的負(fù)荷超載消息;接收到所述負(fù)荷超載消息后,與所述push服務(wù)器斷開心跳連接,并向所述心跳管理服務(wù)器查詢新的push服務(wù)器的地址。
10.根據(jù)權(quán)利要5至8任意一項(xiàng)所述的方法,其特征在于,所述根據(jù)所述push服務(wù)器的地址向所述push服務(wù)器發(fā)送心跳包之后,還包括接收所述push服務(wù)器發(fā)送的心跳值調(diào)整消息; 根據(jù)心跳值調(diào)整消息使用預(yù)置的心跳算法調(diào)整所述當(dāng)前心跳值; 判斷調(diào)整后心跳值是否大于所述終端的最優(yōu)心跳值,若是,則向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包;若否,則向所述push服務(wù)器發(fā)送攜帶有調(diào)整后心跳值的心跳包。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述根據(jù)向所述push服務(wù)器發(fā)送攜帶有調(diào)整后心跳值的心跳包之后,包括若向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包之后,仍接收到所述push 服務(wù)器返回的心跳值調(diào)整消息,則向所述心跳管理服務(wù)器查詢新的push服務(wù)器的地址。
12.—種push服務(wù)器,其特征在于,包括心跳連接單元,用于push服務(wù)器與第一終端建立心跳連接;心跳接收單元,用于接收所述第一終端發(fā)送的心跳包,所述心跳包中攜帶有所述第一終端的當(dāng)前心跳值;負(fù)載計(jì)算單元,用于push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載;終端確定單元,用于若所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則根據(jù)預(yù)置規(guī)則確定第二終端;負(fù)載處理單元,用于在確定所述第二終端之后,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。
13.根據(jù)權(quán)利要求12所述的push服務(wù)器,其特征在于,所述push服務(wù)器還包括 請(qǐng)求接收單元,用于接收第一終端發(fā)送的心跳連接請(qǐng)求;連接判斷單元,用于判斷所述push服務(wù)器是否適于建立心跳連接,若是,則觸發(fā)失敗響應(yīng)單元;若否,則觸發(fā)所述心跳連接單元;失敗響應(yīng)單元,用于向所述第一終端返回連接失敗響應(yīng)。
14.根據(jù)權(quán)利要求12或13所述的push服務(wù)器,其特征在于,所述負(fù)載處理單元包括 連接斷開模塊和超載通知模塊,或調(diào)整通知模塊;所述連接斷開模塊用于在確定所述第二終端之后,斷開與所述第二終端的心跳連接; 所述超載通知模塊用于在斷開與所述第二終端的心跳連接之后,通過負(fù)荷超載消息通知所述第二終端所述push服務(wù)器與所述第二終端斷開心跳連接,使得所述第二終端向心跳管理服務(wù)器查詢新的push服務(wù)器的地址;所述調(diào)整通知模塊用于在確定所述第二終端之后,向所述第二終端發(fā)送心跳值調(diào)整消息,使得所述第二終端進(jìn)行心跳值的調(diào)整,并使用調(diào)整后的心跳值再次向所述push服務(wù)器發(fā)送心跳包。
15.根據(jù)權(quán)利要求14所述的push服務(wù)器,其特征在于,所述push服務(wù)器還包括匹配度計(jì)算單元,用于在接收第一終端發(fā)送的心跳包之后,根據(jù)所述心跳包攜帶的入網(wǎng)信息和位置信息計(jì)算所述第一終端與push服務(wù)器的匹配度;若所述總心跳負(fù)載大于所述心跳服務(wù)器的心跳負(fù)載閾值,則所述確定單元還用于確定與所述心跳服務(wù)器的匹配度最低的終端為第二終端。
16.一種終端,其特征在于,包括地址獲取單元,用于獲取需要進(jìn)行心跳連接的push服務(wù)器的地址; 連接單元,用于根據(jù)所述push服務(wù)器的地址與所述push服務(wù)器建立心跳連接; 心跳包發(fā)送單元,用于在建立所述心跳連接之后,根據(jù)所述push服務(wù)器的地址向所述 push服務(wù)器發(fā)送心跳包,所述心跳包攜帶有當(dāng)前心跳值,使得所述push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算心跳連接的心跳負(fù)載,當(dāng)所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則所述push服務(wù)器根據(jù)預(yù)置規(guī)則確定第二終端,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。
17.根據(jù)權(quán)利要求16所述的終端,其特征在于, 所述終端還包括地址查詢單元和地址接收單元;地址查詢單元,用于向心跳管理服務(wù)器發(fā)送地址查詢消息,所述地址查詢消息中攜帶有所述終端的入網(wǎng)信息和位置信息;地址接收單元,用于接收所述心跳管理服務(wù)器根據(jù)所述入網(wǎng)信息和位置信息查詢到的需要進(jìn)行心跳連接的push服務(wù)器的地址;所述地址獲取單元包括地址判斷模塊和地址提取模塊;所述地址判斷模塊用于判斷所述終端是否存儲(chǔ)有push服務(wù)器的地址,若有,則觸發(fā)地址提取模塊;若沒有,觸發(fā)地址查詢單元;所述地址提取模塊用于提取終端存儲(chǔ)的push服務(wù)器的地址。
18.根據(jù)權(quán)利要求16或17所述的終端,其特征在于,所述終端還包括超載消息接收單元,用于接收所述push服務(wù)器發(fā)送的負(fù)荷超載消息,并觸發(fā)所述地址查詢單元和地址接收單元,并根據(jù)所述地址接收單元接收到的push服務(wù)器的地址再次觸發(fā)所述連接單元。
19.根據(jù)權(quán)利要求16或17所述的終端,其特征在于,所述終端還包括調(diào)整消息接收單元,用于接收所述push服務(wù)器發(fā)送的心跳值調(diào)整消息;調(diào)整單元,用于根據(jù)心跳值調(diào)整消息使用預(yù)置的心跳算法調(diào)整所述當(dāng)前心跳值;心跳值判斷單元,用于判斷調(diào)整后心跳值是否大于所述終端的最優(yōu)心跳值,若是,則觸發(fā)所述心跳包發(fā)送單元向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包;若否,則觸發(fā)觸發(fā)所述心跳包發(fā)送單元向所述push服務(wù)器發(fā)送攜帶有調(diào)整后心跳值的心跳包。
20.根據(jù)權(quán)利要求19所述的終端,其特征在于,若向所述push服務(wù)器發(fā)送攜帶有所述最優(yōu)心跳值的心跳包之后,所述調(diào)整消息接收單元還接收到所述push服務(wù)器返回的心跳值調(diào)整消息,則進(jìn)行心跳連接的失敗重連。
21.—種心跳連接系統(tǒng),其特征在于,包括如權(quán)利要求12至15任一項(xiàng)所述的push服務(wù)器,如權(quán)利要求16至20任一項(xiàng)所述的終端,以及心跳管理服務(wù)器;所述心跳管理服務(wù)器用于接收終端發(fā)送的地址查詢消息,根據(jù)所述地址查詢消息中攜帶的入網(wǎng)信息和位置信息查詢所述終端需要進(jìn)行心跳連接的push服務(wù)器的地址;向所述終端返回查詢到的push服務(wù)器的地址。
全文摘要
本發(fā)明實(shí)施例公開了一種心跳連接方法,相關(guān)裝置以及系統(tǒng),用于push服務(wù)器與終端建立心跳連接時(shí),避免push服務(wù)器負(fù)荷超載。本發(fā)明實(shí)施例方法包括push服務(wù)器與第一終端建立心跳連接;所述push服務(wù)器接收所述第一終端發(fā)送的心跳包,所述心跳包中攜帶有所述第一終端的當(dāng)前心跳值;所述push服務(wù)器根據(jù)所述當(dāng)前心跳值計(jì)算與所述第一終端建立心跳連接之后的心跳負(fù)載;若所述心跳負(fù)載大于所述push服務(wù)器的心跳負(fù)載閾值,則根據(jù)預(yù)置規(guī)則確定第二終端,對(duì)所述第二終端執(zhí)行減小心跳負(fù)載的操作。
文檔編號(hào)H04L29/08GK102447631SQ20111044860
公開日2012年5月9日 申請(qǐng)日期2011年12月28日 優(yōu)先權(quán)日2011年12月28日
發(fā)明者尹偉 申請(qǐng)人:華為終端有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
斗六市| 平度市| 黎川县| 莱阳市| 嘉义县| 祁连县| 南雄市| 永城市| 阿城市| 吉林市| 襄垣县| 新干县| 英山县| 龙陵县| 兴山县| 扶绥县| 广汉市| 叙永县| 泽普县| 眉山市| 武宁县| 犍为县| 新晃| 大兴区| 延津县| 澄城县| 逊克县| 铜山县| 大同县| 开鲁县| 南皮县| 图们市| 绥芬河市| 通江县| 广德县| 廉江市| 庄河市| 大宁县| 曲周县| 若羌县| 岱山县|