一種智能移動(dòng)終端的消息推送方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及智能移動(dòng)終端的相關(guān)技術(shù)領(lǐng)域,特別是一種智能移動(dòng)終端的消息推送方法及系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)代智能移動(dòng)通訊終端設(shè)備(如智能手機(jī)),可以通過3G、4G或WIFI接入數(shù)據(jù)網(wǎng)絡(luò),然后接收服務(wù)器上推送的各種消息。
[0003]服務(wù)器會(huì)提供一個(gè)或若干個(gè)公網(wǎng)地址,供客戶端連接。而終端設(shè)備通常位于各種NAT、防火墻設(shè)施之后,這就造成了兩個(gè)結(jié)果:一是客戶端不可見,通訊必須由客戶端發(fā)起后,服務(wù)端才能發(fā)送消息給客戶端;二是客戶端發(fā)送消息給服務(wù)器后的一段時(shí)間內(nèi),如果沒有持續(xù)消息交互的話,NAT端口映射就會(huì)失效,服務(wù)端也就不能據(jù)此地址再次發(fā)送消息給客戶端了。
[0004]為此,現(xiàn)有技術(shù)主要采用如下方式實(shí)現(xiàn)推送:
[0005]1.客戶端和內(nèi)容服務(wù)器都注冊(cè)到消息推送服務(wù)器上;
[0006]2.內(nèi)容服務(wù)將消息發(fā)送到消息推送服務(wù)器上;
[0007]3.消息推送服務(wù)器將消息推送給已注冊(cè)的目標(biāo)客戶端。
[0008]然而,上述技術(shù)存在一個(gè)缺點(diǎn),即當(dāng)所有的客戶端和內(nèi)容服務(wù)器都注冊(cè)到消息推送服務(wù)器上,會(huì)導(dǎo)致消息推送服務(wù)器負(fù)載過大,且消息推送服務(wù)器將所有的內(nèi)容服務(wù)器的消息都混雜在同一個(gè)服務(wù)器上,其無法實(shí)現(xiàn)負(fù)載均衡分配。
【發(fā)明內(nèi)容】
[0009]基于此,有必要針對(duì)現(xiàn)有的推送技術(shù),實(shí)現(xiàn)負(fù)載均衡分配存在困難的技術(shù)問題,提供一種智能移動(dòng)終端的消息推送方法及系統(tǒng)。
[0010]一種智能移動(dòng)終端的消息推送方法,包括:
[0011 ] 內(nèi)容服務(wù)器注冊(cè)步驟,包括:推送管理服務(wù)器接收到內(nèi)容服務(wù)器的內(nèi)容服務(wù)器注冊(cè)請(qǐng)求,記錄并保存內(nèi)容服務(wù)器的信息,與內(nèi)容服務(wù)器建立邏輯會(huì)話;
[0012]客戶端注冊(cè)步驟,包括:客戶端向推送管理服務(wù)器發(fā)送建立邏輯會(huì)話請(qǐng)求,推送管理服務(wù)器根據(jù)各承載服務(wù)器的負(fù)載情況,選擇一個(gè)承載服務(wù)器與客戶端關(guān)聯(lián),并將承載服務(wù)器的信息返回客戶端,客戶端根據(jù)所接收到的承載服務(wù)器的信息,向承載服務(wù)器發(fā)送建立邏輯會(huì)話請(qǐng)求,承載服務(wù)器為客戶端建立公網(wǎng)地址和端口號(hào),與客戶端建立邏輯會(huì)話;
[0013]內(nèi)容推送步驟,包括:推送管理服務(wù)器接收到已建立邏輯會(huì)話的內(nèi)容服務(wù)器所發(fā)送的推送消息,所述推送消息包括消息目標(biāo)接收方特征和推送內(nèi)容,推送管理服務(wù)器將推送內(nèi)容轉(zhuǎn)發(fā)到滿足消息目標(biāo)接收方特征的客戶端所關(guān)聯(lián)的承載服務(wù)器;
[0014]客戶端推送步驟,包括:承載服務(wù)器將推送內(nèi)容發(fā)送給客戶端。
[0015]—種智能移動(dòng)終端的消息推送系統(tǒng),包括:
[0016]內(nèi)容服務(wù)器注冊(cè)模塊,用于:推送管理服務(wù)器接收到內(nèi)容服務(wù)器的內(nèi)容服務(wù)器注冊(cè)請(qǐng)求,記錄并保存內(nèi)容服務(wù)器的信息,與內(nèi)容服務(wù)器建立邏輯會(huì)話;
[0017]客戶端注冊(cè)模塊,用于:客戶端向推送管理服務(wù)器發(fā)送建立邏輯會(huì)話請(qǐng)求,推送管理服務(wù)器根據(jù)各承載服務(wù)器的負(fù)載情況,選擇一個(gè)承載服務(wù)器與客戶端關(guān)聯(lián),并將承載服務(wù)器的信息返回客戶端,客戶端根據(jù)所接收到的承載服務(wù)器的信息,向承載服務(wù)器發(fā)送建立邏輯會(huì)話請(qǐng)求,承載服務(wù)器為客戶端建立公網(wǎng)地址和端口號(hào),與客戶端建立邏輯會(huì)話;
[0018]內(nèi)容推送模塊,用于:推送管理服務(wù)器接收到已建立邏輯會(huì)話的內(nèi)容服務(wù)器所發(fā)送的推送消息,所述推送消息包括消息目標(biāo)接收方特征和推送內(nèi)容,推送管理服務(wù)器將推送內(nèi)容轉(zhuǎn)發(fā)到滿足消息目標(biāo)接收方特征的客戶端所關(guān)聯(lián)的承載服務(wù)器;
[0019]客戶端推送模塊,用于:承載服務(wù)器將推送內(nèi)容發(fā)送給客戶端。
[0020]本發(fā)明的客戶端進(jìn)行了兩次注冊(cè),即先向推送管理服務(wù)器注冊(cè)后,再向承載服務(wù)器進(jìn)行注冊(cè)。由于采用兩次注冊(cè),因此推送管理服務(wù)器能夠很好地進(jìn)行負(fù)載均衡分配,提高客戶端的推送體驗(yàn)。
【附圖說明】
[0021]圖1為本發(fā)明一種智能移動(dòng)終端的消息推送方法的工作流程圖;
[0022]圖2為本發(fā)明最佳實(shí)施例的系統(tǒng)框體;
[0023]圖3為本發(fā)明最佳實(shí)施例的承載服務(wù)器的層級(jí)示意圖;
[0024]圖4為本發(fā)明最佳實(shí)施例中,內(nèi)容服務(wù)器建立到推送服務(wù)器的連接的工作流程圖;
[0025]圖5為本發(fā)明最佳實(shí)施例推送代理建立到推送管理服務(wù)器的連接的工作流程圖;
[0026]圖6為本發(fā)明最佳實(shí)施例客戶端與承載服務(wù)器的邏輯會(huì)話的初始化的工作流程圖;
[0027]圖7為本發(fā)明最佳實(shí)施例中,內(nèi)容服務(wù)器推送消息的工作流程圖;
[0028]圖8為本發(fā)明最佳實(shí)施例的事務(wù)狀態(tài)機(jī);
[0029]圖9為本發(fā)明最佳實(shí)施例的事務(wù)狀態(tài)機(jī);
[0030]圖10為本發(fā)明一種智能移動(dòng)終端的消息推送系統(tǒng)的結(jié)構(gòu)模塊圖。
【具體實(shí)施方式】
[0031]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)的說明。
[0032]如圖1所示為本發(fā)明一種智能移動(dòng)終端的消息推送方法的工作流程圖,包括:
[0033]步驟S101,包括:推送管理服務(wù)器接收到內(nèi)容服務(wù)器的內(nèi)容服務(wù)器注冊(cè)請(qǐng)求,記錄并保存內(nèi)容服務(wù)器的信息,與內(nèi)容服務(wù)器建立邏輯會(huì)話;
[0034]步驟S102,包括:客戶端向推送管理服務(wù)器發(fā)送建立邏輯會(huì)話請(qǐng)求,推送管理服務(wù)器根據(jù)各承載服務(wù)器的負(fù)載情況,選擇一個(gè)承載服務(wù)器與客戶端關(guān)聯(lián),并將承載服務(wù)器的信息返回客戶端,客戶端根據(jù)所接收到的承載服務(wù)器的信息,向承載服務(wù)器發(fā)送建立邏輯會(huì)話請(qǐng)求,承載服務(wù)器為客戶端建立公網(wǎng)地址和端口號(hào),與客戶端建立邏輯會(huì)話;
[0035]步驟S103,包括:推送管理服務(wù)器接收到已建立邏輯會(huì)話的內(nèi)容服務(wù)器所發(fā)送的推送消息,所述推送消息包括消息目標(biāo)接收方特征和推送內(nèi)容,推送管理服務(wù)器將推送內(nèi)容轉(zhuǎn)發(fā)到滿足消息目標(biāo)接收方特征的客戶端所關(guān)聯(lián)的承載服務(wù)器;
[0036]步驟S104,包括:承載服務(wù)器將推送內(nèi)容發(fā)送給客戶端。
[0037]內(nèi)容服務(wù)器在步驟SlOl中在推送管理服務(wù)器中注冊(cè),而客戶端則進(jìn)行兩次注冊(cè)。本發(fā)明采用兩次注冊(cè)的方式,客戶端僅需要知道推送管理服務(wù)器的地址信息,然后由推送管理服務(wù)器為其分配合適的承載服務(wù)器,并重新進(jìn)行注冊(cè)以建立最終的邏輯會(huì)話。建立了邏輯會(huì)話之后,則在步驟S104中,承載服務(wù)器將步驟S103中由推送管理服務(wù)器所轉(zhuǎn)發(fā)的推送內(nèi)容推送到客戶端中。
[0038]本發(fā)明的客戶端進(jìn)行了兩次注冊(cè),即先向推送管理服務(wù)器注冊(cè)后,再向承載服務(wù)器進(jìn)行注冊(cè)。由于采用兩次注冊(cè),因此推送管理服務(wù)器能夠很好地進(jìn)行負(fù)載均衡分配,提高客戶端的推送體驗(yàn)。
[0039]在其中一個(gè)實(shí)施例中,所述步驟S102,具體包括:
[0040]客戶端向推送管理服務(wù)器發(fā)送包括會(huì)話標(biāo)識(shí)信息的建立邏輯會(huì)話請(qǐng)求,推送管理服務(wù)器對(duì)客戶端進(jìn)行驗(yàn)證,如果驗(yàn)證通過,則推送管理服務(wù)器根據(jù)各承載服務(wù)器的負(fù)載情況,將一個(gè)承載服務(wù)器的信息返回客戶端,并記錄會(huì)話標(biāo)識(shí)信息所標(biāo)識(shí)的邏輯會(huì)話為合法會(huì)話,如果驗(yàn)證不通過則返回錯(cuò)誤回應(yīng);
[0041]客戶端根據(jù)所接收到的當(dāng)前承載服務(wù)器的信息,向當(dāng)前承載服務(wù)器發(fā)送建立邏輯會(huì)話請(qǐng)求;
[0042]接收到客戶端發(fā)送的包括會(huì)話標(biāo)識(shí)信息的建立邏輯會(huì)話請(qǐng)求的承載服務(wù)器,向推送管理服務(wù)器詢問關(guān)于會(huì)話標(biāo)識(shí)信息的邏輯會(huì)話是否合法,當(dāng)從管理服務(wù)器確認(rèn)關(guān)于會(huì)話標(biāo)識(shí)信息的邏輯會(huì)話為合法會(huì)話后,為客戶端建立公網(wǎng)地址和端口號(hào),與客戶端建立邏輯會(huì)話;
[0043]客戶端向推送管理服務(wù)器所發(fā)送的建立邏輯會(huì)話請(qǐng)求所包括的會(huì)話標(biāo)識(shí)信息與客戶端向承載服務(wù)器所發(fā)送的建立邏輯會(huì)話請(qǐng)求所包括的會(huì)話標(biāo)識(shí)信息一致。
[0044]本實(shí)施例中,由推送管理服務(wù)器負(fù)責(zé)對(duì)客戶端進(jìn)行驗(yàn)證,只要驗(yàn)證通過,則會(huì)將對(duì)應(yīng)的邏輯會(huì)話標(biāo)識(shí)為合法會(huì)話。由于客戶端向推送管理服務(wù)器所發(fā)送的建立邏輯會(huì)話請(qǐng)求所包括的會(huì)話標(biāo)識(shí)信息與客戶端向承載服務(wù)器所發(fā)送的建立邏輯會(huì)話請(qǐng)求所包括的會(huì)話標(biāo)識(shí)信息一致,因此承載服務(wù)器其僅需詢問推送管理服務(wù)器關(guān)于會(huì)話標(biāo)識(shí)信息的邏輯會(huì)話是否合法,即承載服務(wù)器無需對(duì)客戶端進(jìn)行驗(yàn)證,從而減少了客戶端與承載服務(wù)器之間的通信開銷。
[0045]在其中一個(gè)實(shí)施例中,客戶端向推送管理服務(wù)器發(fā)送的建立邏輯會(huì)話請(qǐng)求為TCP包,客戶端向承載服務(wù)器發(fā)送的建立邏輯會(huì)話請(qǐng)求為UDP包。
[0046]TCP (Transmiss1n Control Protocol)包即傳輸控制協(xié)議包,UDP (User DatagramProtocol)包即用戶數(shù)據(jù)報(bào)協(xié)議包。
[0047]客戶端向推送管理服務(wù)器發(fā)送的建立邏輯會(huì)話請(qǐng)求僅建立一次,因此采用TCP包進(jìn)行連接以確保質(zhì)量。而客戶端向承載服務(wù)器發(fā)送的建立邏輯會(huì)話請(qǐng)求需長(zhǎng)期建立,且需要持續(xù)