国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種心跳信息發(fā)送方法、服務(wù)器及終端與流程

      文檔序號:11929955閱讀:823來源:國知局
      一種心跳信息發(fā)送方法、服務(wù)器及終端與流程

      本發(fā)明涉及通信領(lǐng)域的連接技術(shù),尤其涉及一種心跳信息發(fā)送方法、服務(wù)器及終端。



      背景技術(shù):

      隨著移動互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,安裝在終端的應(yīng)用種類也越來越多,以移動終端為例,如手機(jī)QQ,微博,微信等。由于部分應(yīng)用屬于即時通信類的應(yīng)用,因此需要移動終端長時間穩(wěn)定的與網(wǎng)絡(luò)側(cè)的各種服務(wù)器保持連接,以便于進(jìn)行各種業(yè)務(wù)數(shù)據(jù)的交互,因此移動終端永遠(yuǎn)在線(always online)業(yè)務(wù)應(yīng)運(yùn)而生。

      在always online這種方式中,為了維持移動終端的永遠(yuǎn)在線狀態(tài),互聯(lián)的雙方需要通過心跳機(jī)制來檢測在暫時沒有通訊的情況下是否都還在線。若服務(wù)器側(cè)檢測到某一終端當(dāng)前已掉線,就需要釋放該終端占用的資源,以便于其他終端進(jìn)行使用,若移動終端檢測到服務(wù)器當(dāng)前已掉線,就需要重新進(jìn)行連接。

      現(xiàn)有的心跳機(jī)制可以參考圖1所示:

      步驟101、當(dāng)網(wǎng)絡(luò)側(cè)服務(wù)器接收到移動終端發(fā)送的連接請求后,啟動第一超時定時器。

      步驟102、當(dāng)移動終端連接服務(wù)器成功后,設(shè)置一個心跳發(fā)送循環(huán)定時器,超時時間為心跳周期T。

      步驟103、在移動終端的心跳發(fā)送循環(huán)定時器記錄時間超過心跳周期T后,移動終端向服務(wù)器發(fā)送一個心跳信息,并設(shè)置一個第二超時定時器。

      步驟104、服務(wù)器接收到心跳信息后,重置服務(wù)器側(cè)的第一超時定時器,并回應(yīng)一個心跳反饋信息給移動終端。

      步驟105、若服務(wù)器長時間未收到心跳信息,導(dǎo)致第一超時定時器超時,說明移動終端掉線,需要釋放該移動終端占用的資源。

      步驟106、若移動終端收到服務(wù)器的心跳反饋信息,說明服務(wù)器正常在線,刪除超時定時器。

      步驟107、若移動終端長時間未收到心跳反饋信息,導(dǎo)致第二超時定時器超時,說明服務(wù)器出現(xiàn)問題,移動終端需要重新發(fā)起連接請求。

      步驟108、若移動終端重連請求失敗,等待預(yù)設(shè)時間后,再重新發(fā)起請求。

      步驟109、移動終端重連成功,返回步驟102。

      由此可知,移動終端是按預(yù)設(shè)的時間間隔向服務(wù)器發(fā)送心跳信息來維持永遠(yuǎn)在線狀態(tài)的。但是在實(shí)際應(yīng)用中可能會出現(xiàn)由于服務(wù)器進(jìn)行重啟,或者網(wǎng)絡(luò)異常,導(dǎo)致大量移動終端同時掉線的情況,如果當(dāng)前掉線的移動終端數(shù)量較多,由于每個移動終端掉線后進(jìn)行重連的等待時間相同,所以導(dǎo)致同一時間段內(nèi)會有大量移動終端進(jìn)行重連,容易造成服務(wù)器瞬時壓力過大,進(jìn)而造成服務(wù)器死機(jī)或再次重啟;同時當(dāng)?shù)艟€的移動終端重新連接成功后,由于每個移動終端的心跳周期相同,所以也會導(dǎo)致大量移動終端在短時間內(nèi)同時發(fā)送心跳信息,不但會增加服務(wù)器壓力,而且還會造成網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞,進(jìn)而影響其他網(wǎng)絡(luò)業(yè)務(wù)。



      技術(shù)實(shí)現(xiàn)要素:

      為解決上述技術(shù)問題,本發(fā)明實(shí)施例期望提供一種心跳信息發(fā)送方法、服務(wù)器及終端,能夠防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息,進(jìn)而減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:

      第一方面,本發(fā)明實(shí)施例提供一種心跳信息發(fā)送方法,用于服務(wù)器,包括:

      確定需要調(diào)整心跳信息發(fā)送時間的終端;

      向所述終端發(fā)送第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量,以便于所述終端根據(jù)所述心跳偏移量調(diào)整下一次心跳信息的發(fā)送時間。

      可選的,在所述確定需要調(diào)整心跳信息發(fā)送時間的終端之前,所述方法還包括:

      判斷參考時間段的瞬時心跳密度是否大于或等于所述服務(wù)器的最大并發(fā)數(shù)與參考系數(shù)的乘積;所述瞬時心跳密度為所述參考時間段內(nèi)接收到的心跳信息數(shù)量與所述參考時間段的比值;所述參考系數(shù)大于0,小于或等于1;

      所述確定需要調(diào)整心跳信息發(fā)送時間的終端包括:

      當(dāng)所述瞬時心跳密度大于或等于所述最大并發(fā)數(shù)與參考系數(shù)的乘積時,確定需要調(diào)整心跳信息發(fā)送時間的終端。

      可選的,在所述確定需要調(diào)整心跳信息發(fā)送時間的終端之前,所述方法還包括:

      確定需要調(diào)整心跳信息發(fā)送時間的終端的數(shù)量。

      第二方面,本發(fā)明實(shí)施例提供一種心跳信息發(fā)送方法,用于終端,包括:

      接收服務(wù)器發(fā)送的第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量;

      根據(jù)所述心跳偏移量,調(diào)整下一次向服務(wù)器發(fā)送心跳信息的發(fā)送時間。

      可選的,在所述接收服務(wù)器發(fā)送的第一心跳反饋信息之前,所述方法還包括:

      與所述服務(wù)器建立連接關(guān)系之后,在一個心跳周期內(nèi)的隨機(jī)時間向服務(wù)器發(fā)送首次心跳信息。

      可選的,在一個心跳周期內(nèi)的隨機(jī)時間向服務(wù)器發(fā)送首次心跳信息之后,所述方法還包括:

      若第一預(yù)設(shè)時間內(nèi)未收到所述服務(wù)器發(fā)送的所述第一心跳反饋信息或第二心跳反饋信息,所述第二心跳反饋信息中不包括所述心跳偏移量,等待隨機(jī)時間后,向所述服務(wù)器發(fā)送連接請求。

      第三方面,本發(fā)明實(shí)施例提供一種服務(wù)器,包括:

      確定單元,用于確定需要調(diào)整心跳信息發(fā)送時間的終端;

      發(fā)送單元,用于向所述終端發(fā)送第一心跳反饋信息,所述第一心跳反饋信 息中包括心跳偏移量,以便于所述終端根據(jù)所述心跳偏移量調(diào)整下一次心跳信息的發(fā)送時間。

      可選的,所述服務(wù)器還包括:

      判斷單元,用于判斷參考時間段的瞬時心跳密度是否大于或等于所述服務(wù)器的最大并發(fā)數(shù)與參考系數(shù)的乘積;所述瞬時心跳密度為所述參考時間段內(nèi)接收到的心跳信息數(shù)量與所述參考時間段的比值;所述參考系數(shù)大于0,小于或等于1;

      所述確定單元具體用于:當(dāng)所述瞬時心跳密度大于或等于所述最大并發(fā)數(shù)與參考系數(shù)的乘積時,確定需要調(diào)整心跳信息發(fā)送時間的終端。

      可選的,所述確定單元還用于:

      確定需要調(diào)整心跳信息發(fā)送時間的終端的數(shù)量。

      第四方面,本發(fā)明實(shí)施例提供一種終端,包括:

      接收單元,用于接收服務(wù)器發(fā)送的第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量;

      調(diào)整單元,用于根據(jù)所述心跳偏移量,調(diào)整下一次向服務(wù)器發(fā)送心跳信息的發(fā)送時間。

      可選的,所述終端還包括:

      發(fā)送單元,用于與所述服務(wù)器建立連接關(guān)系之后,在一個心跳周期內(nèi)的隨機(jī)時間向服務(wù)器發(fā)送首次心跳信息。

      可選的,所述發(fā)送單元還用于:

      若第一預(yù)設(shè)時間內(nèi)未收到所述服務(wù)器發(fā)送的所述第一心跳反饋信息或第二心跳反饋信息,所述第二心跳反饋信息中不包括所述心跳偏移量,等待隨機(jī)時間后,向所述服務(wù)器發(fā)送連接請求。

      本發(fā)明實(shí)施例提供了一種心跳信息發(fā)送方法、服務(wù)器及終端,其中用于服務(wù)器的所述心跳信息發(fā)送方法包括:確定需要調(diào)整心跳信息發(fā)送時間的終端;向所述終端發(fā)送第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量,以便于所述終端根據(jù)所述心跳偏移量調(diào)整下一次心跳信息的發(fā)送時間。相較于 現(xiàn)有技術(shù),如果服務(wù)器在短時間內(nèi)接收到較多的心跳信息,可以通過心跳偏移量調(diào)整終端下一次發(fā)送心跳信息的時間,通過對終端心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)服務(wù)器接收到的心跳信息的分布趨于均勻,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      附圖說明

      圖1為現(xiàn)有技術(shù)中心跳信息發(fā)送方法的流程圖;

      圖2為本發(fā)明實(shí)施例提供的一種心跳信息發(fā)送方法的流程圖;

      圖3為本發(fā)明實(shí)施例提供的另一種心跳信息發(fā)送方法的流程圖;

      圖4為本發(fā)明實(shí)施例提供的又一種心跳信息發(fā)送方法的流程圖;

      圖5為本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖;

      圖6為本發(fā)明實(shí)施例提供的另一種服務(wù)器的結(jié)構(gòu)示意圖;

      圖7為本發(fā)明實(shí)施例提供的又一種服務(wù)器的結(jié)構(gòu)示意圖;

      圖8為本發(fā)明實(shí)施例提供的一種終端的結(jié)構(gòu)示意圖;

      圖9為本發(fā)明實(shí)施例提供的另一種終端的結(jié)構(gòu)示意圖;

      圖10為本發(fā)明實(shí)施例提供的又一種終端的結(jié)構(gòu)示意圖;

      圖11為本發(fā)明實(shí)施例提供的一種心跳信息發(fā)送系統(tǒng)的結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。

      本發(fā)明實(shí)施例提供一種心跳信息發(fā)送方法,如圖2所示,用于服務(wù)器,包括:

      步驟201、確定需要調(diào)整心跳信息發(fā)送時間的終端。

      示例的,服務(wù)器可以將一個心跳周期劃分為多個時間段,統(tǒng)計(jì)每個時間段接收到的心跳信息的數(shù)量,當(dāng)某個時間段內(nèi)接收到的心跳信息的數(shù)量較多時, 可以將該時間段內(nèi)接收到的心跳信息對應(yīng)的終端作為需要調(diào)整心跳信息發(fā)送時間的終端。其中,所述終端不僅僅包括移動終端,還可以包括物聯(lián)網(wǎng),車聯(lián)網(wǎng)中的應(yīng)用客戶端,或者可穿戴設(shè)備,個人電腦等所有應(yīng)用高并發(fā)在線業(yè)務(wù)的終端。

      可選的,以參考時間段為例進(jìn)行說明,所述參考時間段為所述多個時間段中的任意一個。首先服務(wù)器可以分別獲取參考時間段的瞬時心跳密度和該心跳周期的平均心跳密度,然后判斷瞬時心跳密度是否超過平均心跳密度N倍,當(dāng)所述瞬時心跳密度超過所述平均心跳密度N倍時,說明參考時間段內(nèi)接收到的心跳信息的數(shù)量較多,需要對終端的心跳信息的發(fā)送時間進(jìn)行調(diào)整,因此可以從參考時間段內(nèi)發(fā)送心跳信息的終端中確定為需要調(diào)整心跳信息發(fā)送時間的終端;當(dāng)瞬時心跳密度未超過所述平均心跳密度N倍時,說明參考時間段內(nèi)接收到的心跳信息的數(shù)量較少,可以不進(jìn)行調(diào)整。其中,所述N大于1,優(yōu)選的N可以等于2;所述瞬時心跳密度為所述參考時間段內(nèi)接收到的心跳信息數(shù)量與所述參考時間段的比值;所述平均心跳密度為所述心跳周期內(nèi)接收到的心跳信息數(shù)量與所述心跳周期的比值。具體的,假設(shè)參考時間段為Ts,Ts秒內(nèi)收到的心跳信息個數(shù)為M,則參考時間段內(nèi)心跳信息發(fā)送密度P為:P=M/Ts;假設(shè)當(dāng)前與服務(wù)器保持連接狀態(tài)的終端個數(shù)為G,則一個心跳周期內(nèi)的心跳信息發(fā)送密度P=G/T;若P超過P兩倍時,說明該參考時間段內(nèi)的心跳信息過密,需要對參考時間段內(nèi)向服務(wù)器發(fā)送心跳信息的終端的心跳信息發(fā)送時間進(jìn)行調(diào)整。

      可選的,由于服務(wù)器的處理速度有限,使得服務(wù)器存在最大并發(fā)數(shù)的限制,因此為了避免服務(wù)器的瞬時壓力過大,也需要參考時間段的瞬時心跳密度至少小于最大并發(fā)數(shù)。較佳的,服務(wù)器也可以首先獲取參考時間段的瞬時心跳密度,然后判斷瞬時心跳密度是否大于或等于J*E,其中E為服務(wù)器對應(yīng)的最大并發(fā)數(shù),J為小于或等于1的系數(shù),當(dāng)所述瞬時心跳密度大于或等于J*E時,說明參考時間段內(nèi)接收到的心跳信息的數(shù)量較多,需要對終端的心跳信息的發(fā)送時間進(jìn)行調(diào)整,因此可以從參考時間段內(nèi)發(fā)送心跳信息的終端中確定為需要調(diào)整心跳信息發(fā)送時間的終端;當(dāng)瞬時心跳密度小于J*E時,說明參考時間段內(nèi)接 收到的心跳信息的數(shù)量較少,可以不進(jìn)行調(diào)整。

      實(shí)際應(yīng)用中,也可以為每個時間段預(yù)先設(shè)置數(shù)量閾值,首先服務(wù)器可以獲取參考時間段內(nèi)接收到的心跳信息的數(shù)量,然后判斷該數(shù)量是否大于或等于參考時間段對應(yīng)的預(yù)設(shè)數(shù)量閾值,當(dāng)該數(shù)量大于或等于參考時間段對應(yīng)的預(yù)設(shè)數(shù)量閾值時,說明參考時間段內(nèi)接收到的心跳信息的數(shù)量較多,需要對終端的心跳信息的發(fā)送時間進(jìn)行調(diào)整,因此可以從參考時間段內(nèi)發(fā)送心跳信息的終端中確定需要調(diào)整心跳信息發(fā)送時間的終端;當(dāng)該數(shù)量小于參考時間段對應(yīng)的預(yù)設(shè)數(shù)量閾值時,說明參考時間段內(nèi)接收到的心跳信息的數(shù)量較少,可以不進(jìn)行調(diào)整。優(yōu)選的,參考時間段對應(yīng)的預(yù)設(shè)數(shù)量閾值可以為E*Ts*J,其中,E為服務(wù)器對應(yīng)的最大并發(fā)數(shù),J為小于或等于1的系數(shù),Ts為參考時間段。實(shí)際應(yīng)用中,每個時間段對應(yīng)的數(shù)量閾值可以根據(jù)具體情況進(jìn)行設(shè)定,本發(fā)明對此不做限定。

      步驟202、向所述終端發(fā)送第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量,以便于所述終端根據(jù)所述心跳偏移量調(diào)整下一次心跳信息的發(fā)送時間。

      當(dāng)確定需要調(diào)整心跳信息發(fā)送時間的終端之后,可以向該終端發(fā)送第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量,當(dāng)終端接收到該第一心跳反饋信息時,獲取心跳偏移量,然后根據(jù)該移動偏移量調(diào)整下一次向服務(wù)器發(fā)送心跳信息的時間。

      示例的,可以根據(jù)公式(2)計(jì)算所述心跳偏移量W,其中,公式(2)為W=Ts+H,所述H為0至(T-Ts)之間的隨機(jī)整數(shù)。通過公式(2)計(jì)算的心跳偏移量對終端的心跳信息的發(fā)送時間進(jìn)行調(diào)整,可以使得一個心跳周期內(nèi)接收到的心跳信息的分布趨于均勻。

      這樣一來,如果服務(wù)器在短時間內(nèi)接收到較多的心跳信息,可以通過心跳偏移量調(diào)整終端下一次發(fā)送心跳信息的時間,通過對終端心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)服務(wù)器接收到的心跳信息的分布趨于均勻,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器 的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      可選的,在所述確定需要調(diào)整心跳信息發(fā)送時間的終端之前,還可以確定需要調(diào)整心跳信息發(fā)送時間的終端的數(shù)量。

      服務(wù)器在參考時間段內(nèi)接收到的心跳信息的數(shù)量可能較多,并不是每個終端的心跳信息的發(fā)送時間都需要進(jìn)行調(diào)整,一般情況下僅需要調(diào)整少數(shù)終端的心跳信息的發(fā)送時間就可以使得參考時間段內(nèi)接收到的心跳信息的數(shù)量較少到合適的水平,因此首先可以確定需要調(diào)整心跳信息發(fā)送時間的終端的數(shù)量。示例的,可以根據(jù)公式(1)確定需要調(diào)整心跳信息發(fā)送時間的終端的數(shù)量Q,所述公式(1)為Q=(Ts*P-Ts*P)*100/(Ts*P)*M,其中,所述Ts為所述參考時間段;所述P為參考時間段的瞬時心跳密度;所述P為心跳周期的平均心跳密度;所述M為所述參考時間段內(nèi)接收到的心跳信息的數(shù)量。

      本發(fā)明實(shí)施例提供了一種心跳信息發(fā)送方法,所述方法包括:確定需要調(diào)整心跳信息發(fā)送時間的終端;向所述終端發(fā)送第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量,以便于所述終端根據(jù)所述心跳偏移量調(diào)整下一次心跳信息的發(fā)送時間。相較于現(xiàn)有技術(shù),如果服務(wù)器在短時間內(nèi)接收到較多的心跳信息,可以通過心跳偏移量調(diào)整終端下一次發(fā)送心跳信息的時間,通過對終端心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)服務(wù)器接收到的心跳信息的分布趨于均勻,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      本發(fā)明實(shí)施例提供另一種心跳信息發(fā)送方法,用于終端,所述終端包括移動終端,還包括物聯(lián)網(wǎng),車聯(lián)網(wǎng)中的應(yīng)用客戶端,或者還包括可穿戴設(shè)備,個人電腦等所有可以應(yīng)用高并發(fā)在線業(yè)務(wù)的終端。如圖3所示,所述心跳信息發(fā)送方法包括:

      步驟301、接收服務(wù)器發(fā)送的第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量。

      當(dāng)服務(wù)器確定該終端為需要調(diào)整心跳信息的發(fā)送時間的終端時,會向該終端發(fā)送第一心跳反饋信息,該第一心跳反饋信息中包括心跳偏移量。

      步驟302、根據(jù)所述心跳偏移量,調(diào)整下一次向服務(wù)器發(fā)送心跳信息的發(fā)送時間。

      示例的,假設(shè)動終端接收到的第一心跳反饋信息中包括的心跳偏移量為W,本次終端發(fā)送心跳信息的時間為這一個心跳周期T內(nèi)的T1時刻,則下一次終端發(fā)送心跳信息的時間為T1+W,即下一次終端發(fā)送心跳信息的時間為下一個心跳周期的T內(nèi)的T2,所示T2時刻為T2=T1+W。

      這樣一來,如果服務(wù)器在短時間內(nèi)接收到較多的心跳信息,終端可以根據(jù)服務(wù)器發(fā)送的第一心跳反饋信息中包括的心跳偏移量調(diào)整下一次發(fā)送心跳信息的時間,通過對心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)向服務(wù)器發(fā)送的心跳信息的分布趨于均勻,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      可選的,在所述接收服務(wù)器發(fā)送的第一心跳反饋信息之前,所述方法還包括:與所述服務(wù)器建立連接關(guān)系之后,在一個心跳周期內(nèi)的隨機(jī)時間向服務(wù)器發(fā)送首次心跳信息。

      示例的,如果服務(wù)器由于技術(shù)原因進(jìn)行了重啟,則大量終端會同時與服務(wù)器建立連接關(guān)系,因此也會同時向服務(wù)器發(fā)送心跳信息,因此會導(dǎo)致服務(wù)器的瞬時壓力過大,嚴(yán)重時還會再次導(dǎo)致服務(wù)器進(jìn)行重啟,使得服務(wù)器陷入由于瞬時壓力過大而不停重啟的惡性循環(huán)中,因此,當(dāng)終端與服務(wù)器建立連接關(guān)系之后,首次向服務(wù)器發(fā)送心跳信息的時間可以是隨機(jī)數(shù)間。具體的,在終端與所述服務(wù)器建立連接關(guān)系之后,可以在一個心跳周期內(nèi)的隨機(jī)時間向服務(wù)器發(fā)送首次心跳信息。這樣由于每個終端向服務(wù)器發(fā)送首次發(fā)送心跳信息的時間均不同,因此可以避免服務(wù)器的瞬時功率過大。

      可選的,在一個心跳周期內(nèi)的隨機(jī)時間向服務(wù)器發(fā)送首次心跳信息之后,若第一預(yù)設(shè)時間內(nèi)未收到所述服務(wù)器發(fā)送的所述第一心跳反饋信息或第二心跳反饋信息,所述第二心跳反饋信息中不包括所述心跳偏移量,等待隨機(jī)時間后,向所述服務(wù)器發(fā)送連接請求。

      通常的,服務(wù)器在接收到終端發(fā)送的心跳信息之后,需要向終端發(fā)送心跳 反饋信息,該心跳反饋信息可以是包括心跳偏移量的第一心跳反饋信息,也可以是不包括心跳偏移量的第二心跳反饋信息。因此實(shí)際應(yīng)用中,終端在向服務(wù)器發(fā)送心跳信息之后,可以確定是否在第一預(yù)設(shè)時間內(nèi)收到所述服務(wù)器發(fā)送的所述第一心跳反饋信息或第二心跳反饋信息,如果在第一預(yù)設(shè)時間內(nèi)終端未收到服務(wù)器發(fā)送的所述第一心跳反饋信息或第二心跳反饋信息,則說明服務(wù)器掉線,無法維持終端永遠(yuǎn)在線的狀態(tài),因此終端需要與服務(wù)器重新進(jìn)行連接,

      但是,如果服務(wù)器是因?yàn)榧夹g(shù)重啟導(dǎo)致的掉線,會造成與該服務(wù)器連接的所有終端同時需要與服務(wù)器重新進(jìn)行連接,服務(wù)器可能會在短時間內(nèi)接收到大量連接請求,這樣容易導(dǎo)致服務(wù)器瞬時壓力較大,因此在終端確定需要與服務(wù)器進(jìn)行重新連接時,可以等待隨機(jī)事件后,再向服務(wù)器發(fā)送連接請求。這樣一來,由于每個終端向服務(wù)器發(fā)送連接請求的時間不同,避免了服務(wù)器短時間內(nèi)接收到大量連接請求的情況,防止服務(wù)器瞬時壓力過大。

      可選的,可以根據(jù)公式(3)計(jì)算所述隨機(jī)時間X,公式(3)為X=A+B,所述A為固定時間;所述B為0至(S/(R*J))中的隨機(jī)整數(shù);所述S為所述服務(wù)器的最大用戶數(shù)量;所述R為所述服務(wù)器每秒能處理的連接請求數(shù),所述J為大于0,小于或等于1的系數(shù)。其中,A可以是服務(wù)器的重啟時間,也就是說所有終端均在服務(wù)器重啟后向服務(wù)器發(fā)送連接請求,以免終端在服務(wù)器重啟時由于檢測到服務(wù)器掉線,而不斷向服務(wù)器發(fā)送連接請求,這樣可以避免資源的浪費(fèi)。S/R表示了服務(wù)器每秒針對每個終端能夠處理的連接請求的次數(shù),由于服務(wù)器每秒能夠處理的心跳信息的數(shù)量可能小于能夠處理的連接請求的數(shù)量,因此可以給R乘以一個小于1的系數(shù),通過(S/(R*J))表示服務(wù)器每秒針對每個終端能夠處理的心跳信息的次數(shù)。通過該方法設(shè)置隨機(jī)等待時間,有效的避免了因大量客戶端瞬時重連而導(dǎo)致網(wǎng)絡(luò)及服務(wù)器壓力過大,提高系統(tǒng)穩(wěn)定性。

      本發(fā)明實(shí)施例提供另一種心跳信息發(fā)送方法,包括:接收服務(wù)器發(fā)送的第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量,然后根據(jù)所述心跳偏移量,調(diào)整下一次向服務(wù)器發(fā)送心跳信息的發(fā)送時間。相較于現(xiàn)有技術(shù),如果服務(wù)器在短時間內(nèi)接收到較多的心跳信息,終端可以根據(jù)服務(wù)器發(fā)送的第 一心跳反饋信息中包括的心跳偏移量調(diào)整下一次發(fā)送心跳信息的時間,通過對心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)向服務(wù)器發(fā)送的心跳信息的分布趨于均勻,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      本發(fā)明實(shí)施例提供一種心跳信息發(fā)送方法,如圖4所示,包括:

      步驟401、終端與服務(wù)器建立連接關(guān)系之后,在一個心跳周期內(nèi)的隨機(jī)時間向服務(wù)器發(fā)送心跳信息。

      通常的,終端需要首先與服務(wù)器建立連接關(guān)系,具體的,終端向服務(wù)器發(fā)送連接請求,服務(wù)器在接收到所述連接請求之后,向終端發(fā)送連接反饋,若終端接收到服務(wù)器發(fā)送的連接反饋,說明終端與服務(wù)器之間已經(jīng)建立了連接關(guān)系。

      當(dāng)終端與服務(wù)器建立連接關(guān)系之后,為了維持永遠(yuǎn)在線狀態(tài),需要向服務(wù)器發(fā)送心跳信息??蛇x的,終端在接收到服務(wù)器發(fā)送的連接反饋之后,可以設(shè)置首次心跳發(fā)送定時器,定時為一個心跳周期T中的隨機(jī)時間,設(shè)置該首次心跳發(fā)送定時器時立即開始計(jì)時,當(dāng)該定時器的計(jì)時達(dá)到或超過所述定時,終端首次向服務(wù)器發(fā)送首次心跳信息。例如,假設(shè)首次心跳發(fā)送定時器的定時為T0,即終端在接收到服務(wù)器發(fā)送的連接反饋之后,相隔T0時,向服務(wù)器發(fā)送首次心跳信息,T0可以通過公式T0=rand()%(T+1)計(jì)算得出,其中,rand()為均勻分布的隨機(jī)函數(shù),能夠產(chǎn)生0~RAND_MAX之間的整數(shù),因此rand()%(T+1)能夠產(chǎn)生0至T內(nèi)的隨機(jī)整數(shù)。

      步驟402、在終端與服務(wù)器建立連接關(guān)系之后,服務(wù)器判斷是否在第二預(yù)設(shè)時間內(nèi)收到終端發(fā)送的心跳信息;若在第二預(yù)設(shè)時間內(nèi)收到終端發(fā)送的心跳信息,執(zhí)行步驟403;若未在第二預(yù)設(shè)時間內(nèi)收到終端發(fā)送的心跳信息,執(zhí)行步驟414。

      服務(wù)器在向終端發(fā)送連接反饋之后,服務(wù)器等待接收終端的心跳信息,但是由于服務(wù)器在等待終端的心跳信息時需要為該終端預(yù)留資源,所以服務(wù)器并不是無限制的等待,而是等待第二預(yù)設(shè)時間,若服務(wù)器在第二預(yù)設(shè)時間內(nèi)沒有 收到終端發(fā)送的心跳信息,則說明終端當(dāng)前已經(jīng)掉線,服務(wù)器可以釋放該終端占用的資源。

      示例的,服務(wù)器在向終端發(fā)送鏈接反饋之后,會設(shè)置一個連接超時定時器,該連接超時定時器的定時為第二預(yù)設(shè)時間,如果服務(wù)器沒有在第二預(yù)設(shè)時間之內(nèi)接收到心跳信息,說明終端掉線,服務(wù)器可以釋放該終端占用的資源,例如刪除為該終端設(shè)置的連接超時定時器;如果服務(wù)器在第二預(yù)設(shè)時間之內(nèi)接收到心跳信息,連接超時定時器刪除,重新開始計(jì)時。

      步驟403、服務(wù)器根據(jù)所述心跳信息生成第二心跳反饋信息,并將所述第二心跳反饋信息發(fā)送給終端。

      服務(wù)器在接收到終端發(fā)送的心跳信息之后,可以根據(jù)該心跳信息生成第二心跳反饋信息,由于此時終端才剛剛與服務(wù)器建立連接關(guān)系,服務(wù)器還不能確定是否需要對終端發(fā)送心跳信息的時間進(jìn)行調(diào)整,所以服務(wù)器向終端發(fā)送的是不包括心跳偏移量的第二心跳反饋信息。服務(wù)器將所述第二心跳反饋信息發(fā)送給終端,用于通知終端當(dāng)前服務(wù)器在線,永遠(yuǎn)在線狀態(tài)正在保持。

      步驟404、終端判斷是否在第一預(yù)設(shè)時間內(nèi)收到服務(wù)器發(fā)送的第二心跳反饋信息;若在第一預(yù)設(shè)時間內(nèi)收到服務(wù)器發(fā)送的第二心跳反饋信息,執(zhí)行步驟405;若未在第一預(yù)設(shè)時間內(nèi)收到服務(wù)器發(fā)送的第二心跳反饋信息,執(zhí)行步驟415。

      終端向服務(wù)器發(fā)送心跳信息是通知服務(wù)器當(dāng)前終端處于在線狀態(tài),在發(fā)送心跳信息之后,終端還需要確定服務(wù)器當(dāng)前是否處于在線狀態(tài)。示例的,終端可以確定是否在發(fā)送心跳信息之后的第一預(yù)設(shè)時間內(nèi)收到服務(wù)器發(fā)送的第二心跳反饋信息。具體的,在發(fā)送心跳信息之后,終端可以設(shè)置反饋超時定時器,該反饋超時定時器的定時為第一預(yù)設(shè)時間,在終端發(fā)送心跳信息之后開始計(jì)時,若在反饋超時定時器的定時內(nèi)收到服務(wù)器發(fā)送的第二心跳反饋信息,說明服務(wù)器當(dāng)前在線,反饋超時定時器刪除;若超過反饋超時定時器的定時還未收到服務(wù)器發(fā)送的第二心跳反饋信息,說明服務(wù)器當(dāng)前已經(jīng)掉線,終端需要進(jìn)行重新連接。

      步驟405、終端按照心跳周期向服務(wù)器發(fā)送心跳信息,執(zhí)行步驟406。

      若終端在第一預(yù)設(shè)時間內(nèi)收到服務(wù)器發(fā)送的心跳反饋信息,說明服務(wù)器在線,終端與服務(wù)器之間的連接關(guān)系一直存在,為了保證終端的常期在線狀態(tài),終端需要按照心跳周期T向服務(wù)器發(fā)送心跳信息,由于終端的首次心跳信息是隨機(jī)發(fā)出的,因此即便之后每個終端均按照心跳周期T向服務(wù)器周期性的發(fā)送心跳信息,也不會造成短時間內(nèi)服務(wù)器收到多個心跳信息的情況,避免了服務(wù)器瞬時壓力過大。

      步驟406、服務(wù)器檢測參考時間段的瞬時心跳密度是否大于或等于所述服務(wù)器的最大并發(fā)數(shù)與參考系數(shù)的乘積;當(dāng)參考時間段的瞬時心跳密度大于或等于所述服務(wù)器的最大并發(fā)數(shù)與參考系數(shù)的乘積時,執(zhí)行步驟407;當(dāng)參考時間段的瞬時心跳密度小于所述服務(wù)器的最大并發(fā)數(shù)與參考系數(shù)的乘積時,執(zhí)行步驟413。

      實(shí)際應(yīng)用中,可以將一個心跳周期劃分為多個時間段,由于與服務(wù)器連接的終端數(shù)量較多,可能出現(xiàn)某一時間段內(nèi)服務(wù)器收到的心跳信息較多的情況,但是服務(wù)器的處理速度有限,存在最大并發(fā)數(shù)的限制,如果服務(wù)器的瞬時心跳密度較大,可能會導(dǎo)致服務(wù)器瞬時壓力過大,進(jìn)而導(dǎo)致服務(wù)器重啟或死機(jī)的情況。因此服務(wù)器可以首先獲取參考時間段的瞬時心跳密度,然后判斷瞬時心跳密度是否大于或等于J*E,其中E為服務(wù)器對應(yīng)的最大并發(fā)數(shù),J為大于0,小于或等于1的系數(shù),當(dāng)所述瞬時心跳密度大于或等于J*E時,說明參考時間段內(nèi)接收到的心跳信息的數(shù)量較多,需要對終端的心跳信息的發(fā)送時間進(jìn)行調(diào)整,因此可以從參考時間段內(nèi)發(fā)送心跳信息的終端中確定為需要調(diào)整心跳信息發(fā)送時間的終端;當(dāng)瞬時心跳密度小于J*E時,說明參考時間段內(nèi)接收到的心跳信息的數(shù)量較少,可以不進(jìn)行調(diào)整。所述瞬時心跳密度為所述參考時間段內(nèi)接收到的心跳信息數(shù)量與所述參考時間段的比值。本發(fā)明實(shí)施例已參考時間段為例進(jìn)行說明,所述參考時間段為多個時間段中的任意一個。

      步驟407、服務(wù)器確定需要進(jìn)行心跳調(diào)整的終端的數(shù)量,執(zhí)行步驟408。

      若服務(wù)器在參考時間段內(nèi)接收到的心跳信息的數(shù)量較大,說明需要對參考 時間段內(nèi)向服務(wù)器發(fā)送心跳信息的終端的心跳信息發(fā)送時間進(jìn)行調(diào)整,進(jìn)而減小參考時間段內(nèi)接收到的心跳信息的數(shù)量。首先服務(wù)器確定需要進(jìn)行心跳信息發(fā)送時間調(diào)整的終端的數(shù)量,示例的,終端的選取參數(shù)的計(jì)算方法為,K=(Ts*P-Ts*P)*100/(Ts*P),計(jì)算出終端的選取參數(shù)之后,可以確定需要進(jìn)行心跳信息發(fā)送時間調(diào)整的終端的數(shù)量Q為:Q=K%*M,所述K%表示百分之K,為終端的選取比例,所述M為參考時間段內(nèi)接收到的心跳信息的數(shù)量。

      步驟408、服務(wù)器選定需要進(jìn)行心跳調(diào)整的終端,執(zhí)行步驟409.

      在確定了需要進(jìn)行調(diào)整的終端的數(shù)量之后,服務(wù)器還需要選定具體哪一個終端是需要進(jìn)行心跳調(diào)整的終端,因?yàn)槿绻S意將參考時間段內(nèi)收到的前M*K%個終端的心跳信息發(fā)送時間進(jìn)行調(diào)整或者將參考時間段內(nèi)收到的后M*K%個終端的心跳信息發(fā)送時間進(jìn)行調(diào)整,仍然會使得參考時間段的后半段收到的心跳信息的密度較大,或者參考時間段的前半段收到的心跳信息的密度較大,還是容易造成服務(wù)器瞬時壓力較大,因此需要在參考時間段內(nèi)隨機(jī)選取需要進(jìn)行調(diào)整的終端。

      示例的,可以通過簡單的隨機(jī)算法確定當(dāng)前接收的心跳信息對應(yīng)的終端是否是需要進(jìn)行調(diào)整的終端。具體的,以參考終端為例進(jìn)行說明,當(dāng)參考時間段內(nèi)服務(wù)器收到參考終端發(fā)送的心跳信息后,計(jì)算rand()%100的值,如果該值小于K,則將參考終端確定為需要進(jìn)行調(diào)整的終端,否則將參考終端確定為不需要進(jìn)行調(diào)整的終端,其中,rand()%100能夠產(chǎn)生0至99之間的隨機(jī)整數(shù)。

      步驟409、當(dāng)服務(wù)器收到需要進(jìn)行心跳調(diào)整的終端發(fā)送的心跳信息后,向所述終端發(fā)送第一心跳反饋信息,所述第一心跳反饋信息中包括所述終端的心跳偏移量,執(zhí)行步驟410。

      示例的,由于確定了參考終端是需要進(jìn)行調(diào)整的終端,因此當(dāng)服務(wù)器收到參考終端發(fā)送的心跳信息之后,根據(jù)該心跳信息生成的第一心跳反饋信息,該第一心跳反饋信息中包括參考終端的心跳偏移量,其中,心跳偏移量可以根據(jù)具體情況提前進(jìn)行設(shè)置,例如,心跳偏移量W可以通過公式(2)W=Ts+rand()%(T-Ts+1)計(jì)算得出,通過該算法計(jì)算的心跳偏移量調(diào)整終端發(fā)送 心跳信息的時間,可以使得一個心跳周期內(nèi)的心跳信息的分布趨于均勻。

      步驟410、需要進(jìn)行心跳調(diào)整的終端收到服務(wù)器發(fā)送到的第一心跳反饋信息之后,獲取所述第一心跳反饋信息中的心跳偏移量,執(zhí)行步驟411。

      示例的,在參考終端接收到包括心跳偏移量的第一心跳反饋信息之后,可以獲取該心跳偏移量,具體的,參考終端解析該第一心跳反饋信息,根據(jù)該第一心跳反饋信息的標(biāo)識確定該第一心跳反饋信息中是否包括心跳偏移量,如果確定該第一心跳反饋信息中包括心跳偏移量時,獲取該第一心跳反饋信息中包括的心跳偏移量。

      步驟411、終端根據(jù)所述心跳偏移量,調(diào)整下一次發(fā)送心跳信息的時間,執(zhí)行步驟412。

      示例的,參考終端接收到的第一心跳反饋信息中包括心跳偏移量W,假設(shè)本次參考終端發(fā)送心跳信息的時間為這一個心跳周期T內(nèi)的T1時刻,則下一次參考終端發(fā)送心跳信息的時間為T1+W,即下一次參考終端發(fā)送心跳信息的時間為下一個心跳周期的T內(nèi)的T2時刻為T2=T1+W,同時可以將心跳信息對應(yīng)的序列號設(shè)置為1。

      步驟412、終端按照調(diào)整之后的時間向服務(wù)器發(fā)送下一個心跳信息,結(jié)束本流程步驟。

      示例的,參考終端在下一個心跳周期,按照調(diào)整之后的心跳信息的發(fā)送時間向服務(wù)器發(fā)送心跳信息,具體的,參考終端可以在等待T1+W后,向服務(wù)器發(fā)送下一個心跳信息。

      步驟413、服務(wù)器為接收到的每一個心跳信息生成第二心跳反饋信息,并將所述心跳反饋信息發(fā)送給對應(yīng)的終端,結(jié)束本流程步驟。

      當(dāng)服務(wù)器在參考時間段內(nèi)接收到的心跳信息的數(shù)量小于參考閾值,說明參考時間段內(nèi)服務(wù)器接收到的心跳信息的數(shù)量不多,不需要對終端進(jìn)行調(diào)整,因此服務(wù)器可以正常的針對每一個終端發(fā)送的心跳信息發(fā)送第二心跳反饋信息,該第二心跳反饋信息中不包括心跳偏移量。

      步驟414、終端等待隨機(jī)時間后向服務(wù)器發(fā)送重連請求,執(zhí)行步驟401。

      如果終端未在第一預(yù)設(shè)時間內(nèi)收到服務(wù)器發(fā)送的第二心跳反饋信息,說明當(dāng)前服務(wù)器已經(jīng)掉線,如果終端還需要與服務(wù)器建立連接關(guān)系,并保持常期在線狀態(tài),則需要向服務(wù)器發(fā)送重連請求。但是如果是由于服務(wù)器重啟或斷電等原因,造成大量終端同時掉線的情況,為了保證大量終端不會同時向服務(wù)器發(fā)起連接請求,所述終端可以等待隨機(jī)時間后向服務(wù)器發(fā)送重連請求。

      示例的,可以根據(jù)公式(3)計(jì)算所述隨機(jī)時間X,公式(3)為X=A+B,所述A為固定時間;所述B為0至(S/(R*J))中的隨機(jī)整數(shù);所述S為所述服務(wù)器的最大用戶數(shù)量;所述R為所述服務(wù)器每秒能處理的連接請求數(shù),J為大于0,小于或等于1的系數(shù)。其中,A可以是服務(wù)器的重啟時間,也就是說所有終端均在服務(wù)器重啟后向服務(wù)器發(fā)送連接請求,以免終端在服務(wù)器重啟時由于檢測到服務(wù)器掉線,而不斷向服務(wù)器發(fā)送連接請求,這樣可以避免資源的浪費(fèi)。通過該方法設(shè)置隨機(jī)等待時間,有效的避免了因大量客戶端瞬時重連而導(dǎo)致網(wǎng)絡(luò)及服務(wù)器壓力過大,提高系統(tǒng)穩(wěn)定性。

      步驟415、服務(wù)器釋放所述終端占用的資源,結(jié)束本流程步驟。

      如果服務(wù)器未在第二預(yù)設(shè)時間內(nèi)收到終端發(fā)送的心跳信息,說明該終端當(dāng)前已經(jīng)掉線,即該終端當(dāng)前不會再與服務(wù)器進(jìn)行數(shù)據(jù)交互,因此服務(wù)器可以釋放改終端占用的資源,以便于其他終端使用。

      本發(fā)明實(shí)施例提供另一種心跳信息發(fā)送方法,如果服務(wù)器在短時間內(nèi)接收到較多的心跳信息,終端可以根據(jù)服務(wù)器發(fā)送的第一心跳反饋信息中包括的心跳偏移量調(diào)整下一次發(fā)送心跳信息的時間,通過對心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)向服務(wù)器發(fā)送的心跳信息的分布趨于均勻,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      本發(fā)明實(shí)施例提供一種服務(wù)器50,如圖5所示,包括:

      確定單元501,用于確定需要調(diào)整心跳信息發(fā)送時間的終端。

      發(fā)送單元502,用于向所述終端發(fā)送第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量,以便于所述終端根據(jù)所述心跳偏移量調(diào)整下一次心 跳信息的發(fā)送時間。

      這樣一來,如果服務(wù)器在短時間內(nèi)接收到較多的心跳信息,可以通過心跳偏移量調(diào)整終端下一次發(fā)送心跳信息的時間,通過對終端心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)服務(wù)器接收到的心跳信息的分布趨于均勻,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      可選的,如圖6所示,所述服務(wù)器50還包括:判斷單元503,用于判斷參考時間段的瞬時心跳密度是否大于或等于所述服務(wù)器的最大并發(fā)數(shù)與參考系數(shù)的乘積;所述瞬時心跳密度為所述參考時間段內(nèi)接收到的心跳信息數(shù)量與所述參考時間段的比值;所述參考系數(shù)大于0,小于或等于1。所述確定單元501具體用于:當(dāng)所述瞬時心跳密度大于或等于所述最大并發(fā)數(shù)與參考系數(shù)的乘積時,確定需要調(diào)整心跳信息發(fā)送時間的終端。

      可選的,所述確定單元501還用于:確定需要調(diào)整心跳信息發(fā)送時間的終端的數(shù)量。

      可選的,所述確定單元501具體用于:根據(jù)公式(1)確定需要調(diào)整心跳信息發(fā)送時間的終端的數(shù)量Q,所述公式(1)為Q=(Ts*P-Ts*P)*100/(Ts*P)*M,其中,所述Ts為所述參考時間段;所述P為參考時間段的瞬時心跳密度;所述P為心跳周期的平均心跳密度;所述M為所述參考時間段內(nèi)接收到的心跳信息的數(shù)量。

      可選的,如圖7所示,所述服務(wù)器50還包括:計(jì)算單元504,用于根據(jù)公式(2)計(jì)算所述心跳偏移量W,所述公式(1)為W=Ts+H。其中,所述H為0至(T-Ts)之間的隨機(jī)整數(shù)。

      本發(fā)明實(shí)施例提供了一種服務(wù)器,包括:確定單元,用于確定需要調(diào)整心跳信息發(fā)送時間的終端。發(fā)送單元,用于向所述終端發(fā)送第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量,以便于所述終端根據(jù)所述心跳偏移量調(diào)整下一次心跳信息的發(fā)送時間。相較于現(xiàn)有技術(shù),如果服務(wù)器在短時間內(nèi) 接收到較多的心跳信息,可以通過向終端發(fā)送心跳偏移量,使得終端調(diào)整下一次發(fā)送心跳信息的時間,通過對終端心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)服務(wù)器接收到的心跳信息的分布趨于均勻,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      本發(fā)明實(shí)施例提供一種終端80,如圖8所示,包括:

      接收單元801,用于接收服務(wù)器發(fā)送的第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量。

      調(diào)整單元802,用于根據(jù)所述心跳偏移量,調(diào)整下一次向服務(wù)器發(fā)送心跳信息的發(fā)送時間。

      這樣一來,如果服務(wù)器在短時間內(nèi)接收到較多的心跳信息,終端可以根據(jù)服務(wù)器發(fā)送的第一心跳反饋信息中包括的心跳偏移量調(diào)整下一次發(fā)送心跳信息的時間,通過對心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)向服務(wù)器發(fā)送的心跳信息的分布趨于均勻,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      可選的,如圖9所示,所述終端80還包括:發(fā)送單元803,用于與所述服務(wù)器建立連接關(guān)系之后,在一個心跳周期內(nèi)的隨機(jī)時間向服務(wù)器發(fā)送首次心跳信息。

      可選的,所述發(fā)送單元803還用于:若第一預(yù)設(shè)時間內(nèi)未收到所述服務(wù)器發(fā)送的所述第一心跳反饋信息或第二心跳反饋信息,所述第二心跳反饋信息中不包括所述心跳偏移量,等待隨機(jī)時間后,向所述服務(wù)器發(fā)送連接請求。

      可選的,如圖10所示,所述終端80還包括:計(jì)算單元804,用于根據(jù)公式(3)計(jì)算所述隨機(jī)時間,所述公式(3)為X=A+B,其中,所述A為固定時間;所述B為0至(S/(R*J))中的隨機(jī)整數(shù);所述S為所述服務(wù)器的最大用戶數(shù)量;所述R為所述服務(wù)器每秒能處理的連接請求數(shù)。

      本發(fā)明實(shí)施例提供一種終端,包括:接收單元,用于接收服務(wù)器發(fā)送的第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量。調(diào)整單元,用于 根據(jù)所述心跳偏移量,調(diào)整下一次向服務(wù)器發(fā)送心跳信息的發(fā)送時間。相較于現(xiàn)有技術(shù),如果服務(wù)器在短時間內(nèi)接收到較多的心跳信息,終端可以根據(jù)服務(wù)器發(fā)送的第一心跳反饋信息中包括的心跳偏移量調(diào)整下一次發(fā)送心跳信息的時間,通過對心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)向服務(wù)器發(fā)送的心跳信息的分布趨于均勻,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      本發(fā)明實(shí)施例一種心跳信息發(fā)送系統(tǒng)110,如圖11所示,包括服務(wù)器110A與終端110B,所述終端110B以手機(jī)為例進(jìn)行說明。

      所述服務(wù)器110A用于確定需要調(diào)整心跳信息發(fā)送時間的終端110B;向所述終端110B發(fā)送第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量,以便于所述終端110B根據(jù)所述心跳偏移量調(diào)整下一次心跳信息的發(fā)送時間;

      所述終端110B用于接收服務(wù)器110A發(fā)送的第一心跳反饋信息,所述第一心跳反饋信息中包括心跳偏移量;根據(jù)所述心跳偏移量,調(diào)整下一次向服務(wù)器110A發(fā)送心跳信息的發(fā)送時間;還用于在與所述服務(wù)器110A建立連接關(guān)系之后,在一個心跳周期內(nèi)的隨機(jī)時間向服務(wù)器110A發(fā)送首次心跳信息;還用于若第一預(yù)設(shè)時間內(nèi)未收到所述服務(wù)器110A發(fā)送的所述第一心跳反饋信息或第二心跳反饋信息,所述第二心跳反饋信息中不包括所述心跳偏移量,等待隨機(jī)時間后,向所述服務(wù)器110A發(fā)送連接請求。

      這樣一來,如果服務(wù)器在短時間內(nèi)接收到較多的心跳信息,終端可以根據(jù)服務(wù)器發(fā)送的第一心跳反饋信息中包括的心跳偏移量調(diào)整下一次發(fā)送心跳信息的時間,通過對心跳信息發(fā)送時間的調(diào)整,使得一個心跳周期內(nèi)向服務(wù)器發(fā)送的心跳信息的分布趨于均勻,同時由于終端首次發(fā)送心跳信息的時間和重新發(fā)送連接請求的時間均為隨機(jī)時間,因此可以防止大量終端在短時間內(nèi)同時向服務(wù)器發(fā)送心跳信息的情況,減小了服務(wù)器的瞬時壓力,避免了網(wǎng)絡(luò)數(shù)據(jù)周期性擁塞。

      需要說明的是,第一,本發(fā)明實(shí)施例提供的心跳信息發(fā)送方法步驟的先后 順序可以進(jìn)行適當(dāng)調(diào)整,步驟也可以根據(jù)情況進(jìn)行相應(yīng)增減,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化的方法,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi),因此不再贅述。

      第二,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。

      第三,另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理包括,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。

      以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1