信息推送方法、客戶端及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種信息推送方法、客戶端及系統(tǒng)。
【背景技術(shù)】
[0002]隨著移動互聯(lián)網(wǎng)技術(shù)的發(fā)展,信息推送技術(shù)已成為各種平臺(比如Android平臺)中應(yīng)用(APP)上很重要的部分。目前的信息推送方案有多種,比如極光推送,還有各個互聯(lián)網(wǎng)應(yīng)用產(chǎn)品自身業(yè)務(wù)私有的推送模塊,比如網(wǎng)易新聞、騰訊新聞的消息推送等?,F(xiàn)有的這些推送方案的實現(xiàn)都是通過心跳包(heartbeat)與推送后臺保持TCP長連接,以此來接收推送消息。
[0003]但是,現(xiàn)有的信息推送方案存在的缺陷是:耗費終端電量較多,而對于電量有限的移動終端(比如Android手機)而言,則因應(yīng)用消耗電量大而無法滿足用戶長時間使用應(yīng)用的需求。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種信息推送方法、客戶端及系統(tǒng),旨在滿足業(yè)務(wù)推送需求的同時,節(jié)省終端電量。
[0005]本發(fā)明實施例提出一種信息推送方法,包括:
[0006]客戶端從服務(wù)端獲取業(yè)務(wù)消息;
[0007]判斷所述業(yè)務(wù)消息的類型,當(dāng)所述業(yè)務(wù)消息的類型為實時類消息時,調(diào)整心跳包的發(fā)送間隔為第一預(yù)設(shè)時間段,并在第二預(yù)設(shè)時間段后恢復(fù)心跳包的發(fā)送間隔為基準(zhǔn)時間間隔;所述第一預(yù)設(shè)時間段大于所述基準(zhǔn)時間間隔,且小于所述第二預(yù)設(shè)時間段;基于所述調(diào)整后的心跳包發(fā)送策略保持與所述服務(wù)端之間的網(wǎng)絡(luò)鏈路連接,以供業(yè)務(wù)消息的推送操作。
[0008]本發(fā)明實施例還提出一種信息推送客戶端,包括:
[0009]獲取模塊,用于從服務(wù)端獲取業(yè)務(wù)消息;
[0010]調(diào)整模塊,用于判斷所述業(yè)務(wù)消息的類型,當(dāng)所述業(yè)務(wù)消息的類型為實時類消息時,調(diào)整心跳包的發(fā)送間隔為第一預(yù)設(shè)時間段,并在第二預(yù)設(shè)時間段后恢復(fù)心跳包的發(fā)送間隔為基準(zhǔn)時間間隔;所述第一預(yù)設(shè)時間段大于所述基準(zhǔn)時間間隔,且小于所述第二預(yù)設(shè)時間段;
[0011]推送操作模塊,用于基于調(diào)整后的心跳包發(fā)送策略保持與所述服務(wù)端之間的網(wǎng)絡(luò)鏈路連接,以供業(yè)務(wù)消息的推送操作。
[0012]本發(fā)明實施例還提出一種信息推送系統(tǒng),包括:客戶端和服務(wù)端,其中:
[0013]所述客戶端為如上所述的客戶端;
[0014]所述服務(wù)端用于向所述客戶端下發(fā)業(yè)務(wù)消息;基于客戶端根據(jù)業(yè)務(wù)消息的類型調(diào)整的心跳包發(fā)送策略,與所述客戶端保持網(wǎng)絡(luò)鏈路連接,進行業(yè)務(wù)消息的推送操作。
[0015]本發(fā)明實施例提出的一種信息推送方法、客戶端及系統(tǒng),客戶端在從服務(wù)端獲取到業(yè)務(wù)消息后,判斷業(yè)務(wù)消息的類型,根據(jù)業(yè)務(wù)消息的類型調(diào)整心跳包發(fā)送策略;基于該心跳包發(fā)送策略保持與服務(wù)端之間的網(wǎng)絡(luò)鏈路連接,以供業(yè)務(wù)消息的推送操作,由此可以更好的滿足移動終端上各種應(yīng)用業(yè)務(wù)消息的推送需求,并節(jié)省了移動終端的電量。
【附圖說明】
[0016]圖1是本發(fā)明信息推送方法第一實施例的流程示意圖;
[0017]圖2是本發(fā)明實施例中根據(jù)所述業(yè)務(wù)消息的類型調(diào)整心跳包發(fā)送策略的流程示意圖;
[0018]圖3是本發(fā)明信息推送方法第二實施例的流程示意圖;
[0019]圖4是本發(fā)明信息推送方法第三實施例的流程示意圖;
[0020]圖5是本發(fā)明信息推送客戶端第一實施例的功能模塊示意圖;
[0021]圖6是本發(fā)明信息推送客戶端第二實施例的功能模塊示意圖;
[0022]圖7是本發(fā)明信息推送系統(tǒng)較佳實施例的結(jié)構(gòu)示意圖。
[0023]為了使本發(fā)明的技術(shù)方案更加清楚、明了,下面將結(jié)合附圖作進一步詳述。
【具體實施方式】
[0024]應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0025]如圖1所示,本發(fā)明第一實施例提出一種信息推送方法,包括:
[0026]步驟S101,客戶端從服務(wù)端獲取業(yè)務(wù)消息;
[0027]本實施例方案涉及的信息推送系統(tǒng)包括客戶端和服務(wù)端,以Android手機為例,客戶端部分主要負責(zé)手機推送模塊SDK,包括Android Servie的管理、心跳包線程的管理、手機上推送消息的展示,以及和服務(wù)端交互的流程處理,包括發(fā)送注冊包、和服務(wù)端建立長連接、發(fā)送心跳包、推送消息回報等。
[0028]服務(wù)端部分主要負責(zé)長連接的請求管理、業(yè)務(wù)邏輯處理、推送消息、統(tǒng)計信息落地等。此外還包括I3USH WEB管理后臺和應(yīng)用業(yè)務(wù)(比如游戲業(yè)務(wù))接入管理等。
[0029]由于現(xiàn)有的終端應(yīng)用進行業(yè)務(wù)消息推送時,為保持客戶端與服務(wù)端之間的網(wǎng)絡(luò)鏈路連接(比如TCP長連接),通常采用固定的心跳包發(fā)送策略,導(dǎo)致手機終端耗電量較大。
[0030]本實施例考慮到,根據(jù)服務(wù)端推送的業(yè)務(wù)消息的類型不同,可以允許心跳包線程具有不同的休眠時間,因此,本實施例采用以下解決方案:基于客戶端獲取的服務(wù)端下發(fā)的業(yè)務(wù)消息的類型,動態(tài)調(diào)整心跳包發(fā)送策略,在此策略的基礎(chǔ)上保持客戶端與服務(wù)端之間的網(wǎng)絡(luò)鏈路連接,供業(yè)務(wù)消息的推送操作,以此節(jié)省手機終端的電量。
[0031]具體地,以Android手機為例,手機客戶端在啟動后,會生成一個AndroidService,然后與服務(wù)端通過注冊包建立連接。之后,客戶端啟動心跳包線程,向服務(wù)端發(fā)送心跳包與服務(wù)端保持網(wǎng)絡(luò)鏈路連接。通過該網(wǎng)絡(luò)鏈路連接,獲取應(yīng)用業(yè)務(wù)推送消息。
[0032]其中,根據(jù)手機終端網(wǎng)絡(luò)類型的不同,網(wǎng)絡(luò)鏈路連接也不同。通常,手機網(wǎng)絡(luò)類型主要有三種:wif1、net,還有小一部分wap網(wǎng)絡(luò)。由于wif1、net網(wǎng)絡(luò)都支持長連接,而wap網(wǎng)絡(luò)不支持長連接,因此,當(dāng)手機網(wǎng)絡(luò)類型為wif1、net時,客戶端與服務(wù)端之間的網(wǎng)絡(luò)鏈路連接為長連接,客戶端獲取的業(yè)務(wù)消息為服務(wù)端推送的業(yè)務(wù)消息。
[0033]當(dāng)手機網(wǎng)絡(luò)類型為wap網(wǎng)絡(luò)時,客戶端與服務(wù)端之間的網(wǎng)絡(luò)鏈路連接不為長連接,則推送方案需要改變成拉(polling)的方式,由客戶端主動從服務(wù)端拉取業(yè)務(wù)消息。
[0034]由此,客戶端根據(jù)網(wǎng)絡(luò)類型的不同,需要在上述兩種連接狀態(tài)中切換,在切換過程中,需要進行推送流程的切換。An droid系統(tǒng)中通過注冊網(wǎng)絡(luò)連接狀態(tài)BroadcastReceiver,來接收網(wǎng)絡(luò)變化廣播通知,以此調(diào)整網(wǎng)絡(luò)鏈路連接。
[0035]步驟S102,根據(jù)所述業(yè)務(wù)消息的類型調(diào)整心跳包發(fā)送策略;
[0036]本實施例可以根據(jù)不同的業(yè)務(wù)消息類型調(diào)整心跳包發(fā)送策略,以節(jié)省手機電量。
[0037]其中,業(yè)務(wù)消息類型可以分為實時類消息、設(shè)定時間類消息以及指令類消息等。
[0038]以游戲營銷業(yè)務(wù)為例,在游戲營銷業(yè)務(wù)中,推送消息分為游戲?qū)崟r消息、游戲營銷活動消息、推送指令消息等類型。
[0039]游戲?qū)崟r消息是指游戲最新的版本更新消息和道具打折消息以及其它實時消息。
[0040]游戲營銷活動消息是指游戲運營策劃的一些活動消息,其具有固定的推送時間。
[0041]推送指令消息包括推送關(guān)閉消息,或者臨時下發(fā)的推送策略消息等。
[0042]對于不同的業(yè)務(wù)消息類型采用不同的心跳包發(fā)送間隔。如,對于實時類消息,按照推送消息不能過于頻繁的約定和經(jīng)驗數(shù)據(jù),在接收到該實時類消息后接下來一段時間(比如60分鐘)內(nèi)再有實時類消息的概率較小,可以調(diào)整心跳包的發(fā)送間隔大于客戶端與服務(wù)端約定的基準(zhǔn)時間間隔,從而節(jié)省了網(wǎng)絡(luò)連接耗費和CPU運行耗費的手機電量;然后在設(shè)定的時間段后,恢復(fù)心跳包發(fā)送間隔為基準(zhǔn)時間間隔。
[0043]對于設(shè)定時間類消息,由于消息推送時間已預(yù)先設(shè)定,同樣可以調(diào)整心跳包的發(fā)送間隔大于客戶端與服務(wù)端約定的基準(zhǔn)時間間隔,從而可以節(jié)省網(wǎng)絡(luò)連接耗費和CPU運行耗費的手機電量。
[0044]對于指令類消息,以推送關(guān)閉消息為例,當(dāng)客戶端接收到該推送指令消息后,則會停止心跳包的發(fā)送,關(guān)閉與服務(wù)端之間的網(wǎng)絡(luò)鏈路連接,節(jié)省了網(wǎng)絡(luò)連接耗費的手機電量。
[0045]步驟S103,基于所述調(diào)整后的心跳包發(fā)送策略保持與所述服務(wù)端之間的網(wǎng)絡(luò)鏈路連接,以供業(yè)務(wù)消息的推送操作。
[0046]其中,消息推送系統(tǒng)在進行業(yè)務(wù)消息的推送操作時,需要根據(jù)網(wǎng)絡(luò)鏈路連接的類型采取相應(yīng)的推送方案,其中:
[0047]當(dāng)所述網(wǎng)絡(luò)鏈路連接為長連接時,所述客戶端接收所述服務(wù)端推送的業(yè)務(wù)消息;