两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

消息推送實(shí)現(xiàn)方法、移動(dòng)終端及消息推送系統(tǒng)的制作方法

文檔序號(hào):7995197閱讀:969來(lái)源:國(guó)知局
消息推送實(shí)現(xiàn)方法、移動(dòng)終端及消息推送系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種消息推送實(shí)現(xiàn)方法,包括:移動(dòng)終端上的正向代理服務(wù)模塊與服務(wù)器之間建立長(zhǎng)連接;所述正向代理服務(wù)模塊通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述移動(dòng)終端上的應(yīng)用與所述服務(wù)器之間交互的信息;其中,所述移動(dòng)終端上的應(yīng)用包括多個(gè)應(yīng)用;所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接。本發(fā)明還提供一種消息推送實(shí)現(xiàn)系統(tǒng)和移動(dòng)終端。本發(fā)明可以為移動(dòng)終端節(jié)省流量和電量。
【專利說(shuō)明】消息推送實(shí)現(xiàn)方法、移動(dòng)終端及消息推送系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種消息推送實(shí)現(xiàn)方法、移動(dòng)終端和消息推送系統(tǒng)。
【背景技術(shù)】
[0002]MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸)是輕量級(jí)的消息傳輸協(xié)議,使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布。XMPP (ExtensibleMessaging and Presence Protocol,可擴(kuò)展消息處理現(xiàn)場(chǎng)協(xié)議)是一種基于XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)的協(xié)議,它繼承了在XML環(huán)境中靈活的發(fā)展性,XMPP可以通過(guò)發(fā)送擴(kuò)展的信息來(lái)處理用戶的需求。從協(xié)議層面來(lái)看,這兩個(gè)協(xié)議都可以用來(lái)進(jìn)行消息推送,但由于這兩個(gè)協(xié)議的普及度不高,很多移動(dòng)終端上的開(kāi)發(fā)語(yǔ)言如AndroicK安卓)的開(kāi)發(fā)語(yǔ)法JAVA和IPhone上的開(kāi)發(fā)語(yǔ)言0BJECT-C,都沒(méi)有成熟的組件提供對(duì)這兩個(gè)協(xié)議的支持。
[0003]目前移動(dòng)終端的不同應(yīng)用和后端服務(wù)器建立長(zhǎng)連接以實(shí)現(xiàn)消息推送時(shí),都是各自保持一條長(zhǎng)連接,每個(gè)應(yīng)用對(duì)應(yīng)一條長(zhǎng)連接,如果移動(dòng)終端上安裝了多個(gè)應(yīng)用,就會(huì)有多條長(zhǎng)連接。為避免長(zhǎng)連接被中間的網(wǎng)絡(luò)節(jié)點(diǎn)如運(yùn)營(yíng)商的網(wǎng)關(guān)關(guān)閉,客戶端和服務(wù)器之間需要按照一定的頻率不斷地交換數(shù)據(jù),我們稱這種數(shù)據(jù)為心跳包,心跳包需要耗費(fèi)網(wǎng)絡(luò)流量和電量。因此,在移動(dòng)終端上?;疃鄺l長(zhǎng)連接的成本是昂貴的。
[0004]考慮到安全性和流量、電量因素,客戶端不會(huì)直接和消息中心相連,而是通過(guò)反向代理和消息中心相連。為保證消息的及時(shí)送達(dá),需要一種機(jī)制來(lái)判斷是否有新的數(shù)據(jù)產(chǎn)生?,F(xiàn)有技術(shù)中是通過(guò)服務(wù)器不斷詢問(wèn)消息中心是否有新的數(shù)據(jù)產(chǎn)生,對(duì)及時(shí)性要求比較強(qiáng)的消息,如果采用輪詢的方式會(huì)因?yàn)檩喸冮g隔太短對(duì)服務(wù)器造成很大壓力。
[0005]現(xiàn)有技術(shù)可能存在以下的問(wèn)題:
[0006]I)客戶端和服務(wù)器實(shí)現(xiàn)新的協(xié)議有難度
[0007]無(wú)論XMPP還是MQTT都是一個(gè)協(xié)議簇,客戶端和服務(wù)器想要通過(guò)該協(xié)議實(shí)現(xiàn)通信,就必須都完成協(xié)議的實(shí)現(xiàn),實(shí)現(xiàn)協(xié)議之前開(kāi)發(fā)人員要先理解協(xié)議,理解和實(shí)現(xiàn)協(xié)議,都需要很長(zhǎng)的時(shí)間。
[0008]2)?;疃鄺l長(zhǎng)連接耗費(fèi)大量的網(wǎng)絡(luò)流量和電量
[0009]客戶端和服務(wù)器之間建立長(zhǎng)連接,需要通過(guò)不間斷地發(fā)送心跳包來(lái)達(dá)到保活連接的目的,否則長(zhǎng)連接會(huì)被鏈路的中間節(jié)點(diǎn),如運(yùn)營(yíng)商的網(wǎng)關(guān),直接關(guān)閉。移動(dòng)終端和服務(wù)器之間建立的連接越多,?;顜?lái)的流量和電量的開(kāi)銷也越大。
[0010]3)不能適應(yīng)多種消息類型
[0011]用戶訂閱的多種類型的消息的即時(shí)性要求各不相同,后臺(tái)服務(wù)器要么犧牲性能保證實(shí)時(shí)消息及時(shí)送達(dá),要么犧牲用戶體驗(yàn)讓所有消息都延遲投遞。

【發(fā)明內(nèi)容】
[0012]本申請(qǐng)要解決的技術(shù)問(wèn)題是提供一種消息推送實(shí)現(xiàn)方法、系統(tǒng)和移動(dòng)終端,解決現(xiàn)有技術(shù)中消息推送耗費(fèi)大量電量和網(wǎng)絡(luò)流量的問(wèn)題。
[0013]為了解決上述問(wèn)題,本申請(qǐng)?zhí)峁┝艘环N消息推送實(shí)現(xiàn)方法,包括:
[0014]移動(dòng)終端上的正向代理服務(wù)模塊與服務(wù)器之間建立長(zhǎng)連接;
[0015]所述正向代理服務(wù)模塊通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述移動(dòng)終端上的應(yīng)用與所述服務(wù)器之間交互的信息;其中,所述移動(dòng)終端上的應(yīng)用包括多個(gè)應(yīng)用;所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接。
[0016]上述方法還可具有以下特點(diǎn),所述正向代理服務(wù)模塊通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述移動(dòng)終端上的應(yīng)用與所述服務(wù)器之間交互的信息包括:
[0017]所述正向代理服務(wù)模塊接收到所述應(yīng)用的請(qǐng)求后,緩存該請(qǐng)求,到達(dá)預(yù)設(shè)時(shí)間間隔或預(yù)設(shè)時(shí)間間隔內(nèi)緩存的請(qǐng)求個(gè)數(shù)達(dá)到指定個(gè)數(shù)后,將緩存的請(qǐng)求合并到請(qǐng)求包中通過(guò)所述長(zhǎng)連接發(fā)送給所述服務(wù)器。
[0018]上述方法還可具有以下特點(diǎn),所述正向代理服務(wù)模塊接收的所述移動(dòng)終端上的應(yīng)用的請(qǐng)求中攜帶發(fā)起該請(qǐng)求的應(yīng)用的設(shè)備標(biāo)識(shí);所述正向代理服務(wù)模塊將所述緩存的未發(fā)送的請(qǐng)求合并到所述請(qǐng)求包中時(shí),所述請(qǐng)求包中攜帶所合并的各請(qǐng)求中攜帶的設(shè)備標(biāo)識(shí);其中,一個(gè)所述設(shè)備標(biāo)識(shí)唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用;
[0019]以及,所述正向代理服務(wù)模塊接收到所述服務(wù)器發(fā)送給所述多個(gè)應(yīng)用的消息后,所述消息中攜帶一套或多套信息,每套信息包括消息內(nèi)容及該消息內(nèi)容對(duì)應(yīng)的移動(dòng)終端上的應(yīng)用的設(shè)備標(biāo)識(shí);所述正向代理服務(wù)模塊根據(jù)所述消息中的設(shè)備標(biāo)識(shí)將該消息拆分成子消息,每個(gè)子消息中包括一套所述信息,所述正向代理服務(wù)模塊根據(jù)所述子消息中的設(shè)備標(biāo)識(shí)將所述子消息發(fā)送給該移動(dòng)終端上對(duì)應(yīng)的應(yīng)用。
[0020]上述方法還可具有以下特點(diǎn),所述正向代理服務(wù)模塊和所述服務(wù)器之間的所述長(zhǎng)連接基于超文本傳送協(xié)議塊HTTP CHUNK協(xié)議。
[0021]本申請(qǐng)還提供一種消息推送實(shí)現(xiàn)方法,包括:
[0022]服務(wù)器與移動(dòng)終端之間建立長(zhǎng)連接;
[0023]所述服務(wù)器通過(guò)所述長(zhǎng)連接將所述移動(dòng)終端上的多個(gè)應(yīng)用的請(qǐng)求轉(zhuǎn)發(fā)至消息中心,將所述消息中心發(fā)出的與所述多個(gè)應(yīng)用對(duì)應(yīng)的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端,其中所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接。
[0024]上述方法還可具有以下特點(diǎn),所述服務(wù)器和所述移動(dòng)終端之間的所述長(zhǎng)連接基于超文本傳送協(xié)議塊HTTP CHUNK協(xié)議。
[0025]上述方法還可具有以下特點(diǎn),所述服務(wù)器從所述請(qǐng)求中獲取使用所述長(zhǎng)連接的所述移動(dòng)終端上的各應(yīng)用的設(shè)備標(biāo)識(shí),維護(hù)所述設(shè)備標(biāo)識(shí)與所述長(zhǎng)連接的關(guān)聯(lián)關(guān)系,其中,所述設(shè)備標(biāo)識(shí)唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用。
[0026]上述方法還可具有以下特點(diǎn),所述服務(wù)器接收到所述消息中心發(fā)出的消息后,獲取所述消息中攜帶的設(shè)備標(biāo)識(shí),根據(jù)所述設(shè)備標(biāo)識(shí)查找其關(guān)聯(lián)的長(zhǎng)連接,將所述消息通過(guò)其關(guān)聯(lián)的長(zhǎng)連接發(fā)送給對(duì)應(yīng)的移動(dòng)終端。
[0027]上述方法還可具有以下特點(diǎn),所述服務(wù)器將所述消息中心發(fā)出的與所述多個(gè)應(yīng)用對(duì)應(yīng)的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端包括:
[0028]所述服務(wù)器收到所述多個(gè)應(yīng)用的消息后,判斷所述多個(gè)應(yīng)用的消息的設(shè)備標(biāo)識(shí)關(guān)聯(lián)同一個(gè)長(zhǎng)連接,將所述多個(gè)應(yīng)用的消息封裝在一個(gè)數(shù)據(jù)包中,將所述數(shù)據(jù)包通過(guò)所述長(zhǎng)連接發(fā)送給所述移動(dòng)終端。
[0029]上述方法還可具有以下特點(diǎn),當(dāng)所述移動(dòng)終端上的應(yīng)用訂閱了第一類業(yè)務(wù)時(shí),所述服務(wù)器以預(yù)設(shè)頻率主動(dòng)輪詢所述消息中心是否有所述第一類業(yè)務(wù)的新消息,且所述預(yù)設(shè)頻率不大于頻率閾值;以及,
[0030]當(dāng)所述移動(dòng)終端上的應(yīng)用訂閱了第二類業(yè)務(wù)時(shí),所述服務(wù)器監(jiān)聽(tīng)指定端口,并在監(jiān)聽(tīng)到有所述第二類業(yè)務(wù)的新消息的通知時(shí),向所述消息中心獲取所述第二類業(yè)務(wù)的新消
肩、O
[0031]本申請(qǐng)還提供一種移動(dòng)終端,所述移動(dòng)終端安裝多個(gè)應(yīng)用,其特征在于,所述移動(dòng)終端設(shè)有正向代理服務(wù)模塊,所述正向代理服務(wù)模塊包括第一連接建立單元和第一交互單元,其中:
[0032]所述第一連接建立單元用于與服務(wù)器之間建立長(zhǎng)連接;
[0033]所述第一交互單元用于,通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述多個(gè)應(yīng)用與所述服務(wù)器之間交互的信息;所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接。
[0034]上述移動(dòng)終端還可具有以下特點(diǎn),所述第一交互單元還用于在接收到所述移動(dòng)終端上的應(yīng)用的請(qǐng)求后,緩存該請(qǐng)求,到達(dá)預(yù)設(shè)時(shí)間間隔或預(yù)設(shè)時(shí)間間隔內(nèi)緩存的請(qǐng)求個(gè)數(shù)達(dá)到指定個(gè)數(shù)后,將緩存的請(qǐng)求合并到請(qǐng)求包中通過(guò)所述長(zhǎng)連接發(fā)送給所述服務(wù)器。
[0035]上述移動(dòng)終端還可具有以下特點(diǎn),所述第一交互單元接收的所述移動(dòng)終端上的應(yīng)用的請(qǐng)求中攜帶發(fā)起該請(qǐng)求的應(yīng)用的設(shè)備標(biāo)識(shí);
[0036]所述第一交互單元還用于:將所述緩存的未發(fā)送的請(qǐng)求合并到所述請(qǐng)求包中時(shí),所述請(qǐng)求包中攜帶所合并的各請(qǐng)求中攜帶的設(shè)備標(biāo)識(shí);其中,一個(gè)所述設(shè)備標(biāo)識(shí)唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用;
[0037]以及,從所述服務(wù)器收到消息后,其中,所述消息中攜帶一套或多套信息,每套信息包括消息內(nèi)容及該消息內(nèi)容對(duì)應(yīng)的移動(dòng)終端上的應(yīng)用的設(shè)備標(biāo)識(shí);根據(jù)所述消息中的設(shè)備標(biāo)識(shí)將該消息拆分成子消息,每個(gè)子消息包括一套所述信息,根據(jù)所述子消息中的設(shè)備標(biāo)識(shí)將所述子消息發(fā)送給所述移動(dòng)終端上對(duì)應(yīng)的應(yīng)用。
[0038]上述移動(dòng)終端還可具有以下特點(diǎn),所述第一連接建立單元和所述服務(wù)器之間的所述長(zhǎng)連接基于超文本傳送協(xié)議塊HTTP CHUNK協(xié)議。
[0039]本申請(qǐng)還提供一種消息推送系統(tǒng),包括:服務(wù)器及消息中心,所述服務(wù)器包括第二連接建立單元及第二交互單元,其中:
[0040]所述第二連接建立單元用于與移動(dòng)終端之間建立長(zhǎng)連接;
[0041]所述第二交互單元用于,通過(guò)所述長(zhǎng)連接將所述移動(dòng)終端上的多個(gè)應(yīng)用的請(qǐng)求轉(zhuǎn)發(fā)至所述消息中心,并將所述消息中心對(duì)應(yīng)于所述多個(gè)應(yīng)用的請(qǐng)求所發(fā)出的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端,其中所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接;
[0042]所述消息中心用于,接收所述服務(wù)器轉(zhuǎn)發(fā)的所述多個(gè)應(yīng)用的請(qǐng)求并對(duì)應(yīng)于所述多個(gè)應(yīng)用的請(qǐng)求返回消息。
[0043]上述系統(tǒng)還可具有以下特點(diǎn),所述第二連接建立單元和所述移動(dòng)終端之間的所述長(zhǎng)連接基于超文本傳送協(xié)議塊HTTP CHUNK協(xié)議。
[0044]上述系統(tǒng)還可具有以下特點(diǎn),所述服務(wù)器還包括關(guān)聯(lián)信息管理單元,所述關(guān)聯(lián)信息管理單元用于從所述移動(dòng)終端發(fā)送的所述請(qǐng)求中獲取使用所述長(zhǎng)連接的所述移動(dòng)終端上的各應(yīng)用的設(shè)備標(biāo)識(shí),維護(hù)所述設(shè)備標(biāo)識(shí)與所述長(zhǎng)連接的關(guān)聯(lián)關(guān)系,其中,所述設(shè)備標(biāo)識(shí)唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用;
[0045]所述第二交互單元還用于:接收到所述消息中心發(fā)送給所述移動(dòng)終端上的應(yīng)用的消息后,獲取所述消息中攜帶的設(shè)備標(biāo)識(shí),根據(jù)所述設(shè)備標(biāo)識(shí)查找其關(guān)聯(lián)的長(zhǎng)連接,將所述消息通過(guò)其關(guān)聯(lián)的長(zhǎng)連接發(fā)送給對(duì)應(yīng)的移動(dòng)終端。
[0046]上述系統(tǒng)還可具有以下特點(diǎn),所述第二交互單元將所述消息中心對(duì)應(yīng)于所述多個(gè)應(yīng)用的請(qǐng)求所發(fā)出的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端包括:所述第二交互單元收到所述多個(gè)應(yīng)用的消息后,判斷所述多個(gè)應(yīng)用的消息的設(shè)備標(biāo)識(shí)關(guān)聯(lián)同一個(gè)長(zhǎng)連接,將所述多個(gè)應(yīng)用的消息封裝在一個(gè)數(shù)據(jù)包中,將所述數(shù)據(jù)包通過(guò)所述長(zhǎng)連接發(fā)送給所述移動(dòng)終端。
[0047]上述系統(tǒng)還可具有以下特點(diǎn),所述服務(wù)器還包括輪詢單元和監(jiān)聽(tīng)單元,其中:
[0048]所述輪詢單元用于,當(dāng)所述移動(dòng)終端上的應(yīng)用訂閱了第一類業(yè)務(wù)時(shí),以預(yù)設(shè)頻率主動(dòng)輪詢所述消息中心是否有所述第一類業(yè)務(wù)的新消息,且所述預(yù)設(shè)頻率不大于頻率閾值;
[0049]所述監(jiān)聽(tīng)單元用于,當(dāng)所述移動(dòng)終端上的應(yīng)用訂閱了第二類業(yè)務(wù)時(shí),監(jiān)聽(tīng)指定端口,并在監(jiān)聽(tīng)到有所述第二類業(yè)務(wù)的新消息的通知時(shí),向所述消息中心獲取所述第二類業(yè)務(wù)的新消息。
[0050]本申請(qǐng)實(shí)施例可以采用HTTP (Hypertext Transfer Protocol,超文本傳送協(xié)議)CHUNK來(lái)傳送數(shù)據(jù)、?;钸B接,多個(gè)應(yīng)用復(fù)用一條長(zhǎng)連接、通過(guò)主動(dòng)輪詢和消息通知相結(jié)合的方式向移動(dòng)終端推送消息,包括以下優(yōu)點(diǎn):
[0051]I)客戶端和服務(wù)器不需要實(shí)現(xiàn)新的協(xié)議。采用主流的HTTP協(xié)議來(lái)通信,不同平臺(tái)的移動(dòng)終端和后臺(tái)服務(wù)器對(duì)該協(xié)議都有成熟的開(kāi)發(fā)組件,不存在實(shí)現(xiàn)新的協(xié)議帶來(lái)的額外的開(kāi)發(fā)量;另外,由于本申請(qǐng)采用HTTP協(xié)議,各平臺(tái)均可支持,因此,本申請(qǐng)?zhí)峁┑姆桨缚梢钥缙脚_(tái)使用,不同于現(xiàn)有Android和IPhone上的推送方案,均局限于特定的系統(tǒng)。
[0052]2)為移動(dòng)終端節(jié)省流量和電量。終端上的多個(gè)應(yīng)用復(fù)用一條長(zhǎng)連接后,多個(gè)應(yīng)用的請(qǐng)求包和應(yīng)答包可以分別合并為一個(gè)請(qǐng)求包和一個(gè)應(yīng)答包,減少了請(qǐng)求包頭和應(yīng)答包頭帶來(lái)的額外網(wǎng)絡(luò)開(kāi)銷。同時(shí),客戶端和服務(wù)器之間只需要?;钜粭l長(zhǎng)連接就可以了,省去了多條長(zhǎng)連接為?;顜?lái)的電量和流量的開(kāi)銷;
[0053]3)兼顧服務(wù)器壓力和用戶體驗(yàn)。對(duì)于第一類業(yè)務(wù)(比如,有實(shí)時(shí)要求的緊急度高的業(yè)務(wù))采用主動(dòng)通知的方式,消息中心只有在有第一類信息的消息產(chǎn)生的情況下才通知服務(wù)器,而對(duì)于第二類業(yè)務(wù)(比如沒(méi)有實(shí)時(shí)要求的業(yè)務(wù)),服務(wù)器采用一個(gè)預(yù)設(shè)頻率主動(dòng)輪詢消息中心是否有新消息產(chǎn)生。這樣既減輕了頻繁輪詢帶來(lái)的服務(wù)器壓力,又保證有實(shí)時(shí)要求的消息的實(shí)時(shí)性。
[0054]當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
【專利附圖】

【附圖說(shuō)明】
[0055]圖1是移動(dòng)終端和后臺(tái)服務(wù)器之間的消息推送示意圖;
[0056]圖2是服務(wù)器發(fā)給移動(dòng)終端的消息格式示意圖;[0057]圖3是PUSH(推送)模式下通知格式(總長(zhǎng)度以字節(jié)計(jì))示意圖;
[0058]圖4是服務(wù)器發(fā)送給消息中心的移動(dòng)終端上線通知示意圖;
[0059]圖5是服務(wù)器發(fā)送給消息中心的移動(dòng)終端下線通知示意圖;
[0060]圖6是本申請(qǐng)應(yīng)用實(shí)例示意圖;
[0061]圖7是本申請(qǐng)實(shí)施例移動(dòng)終端框圖;
[0062]圖8是本申請(qǐng)實(shí)施例消息推送系統(tǒng)框圖。
【具體實(shí)施方式】
[0063]為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對(duì)本申請(qǐng)的實(shí)施例進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
[0064]實(shí)施例一
[0065]本實(shí)施例基于圖1所示架構(gòu),如圖1所示,所述架構(gòu)包括移動(dòng)終端10,移動(dòng)終端10上包括應(yīng)用101、正向代理服務(wù)模塊102,服務(wù)器103和消息中心104。
[0066]本實(shí)施例提供一種消息推送實(shí)現(xiàn)方法,本實(shí)施例中,移動(dòng)終端上的應(yīng)用通過(guò)設(shè)置在該移動(dòng)終端上的正向代理服務(wù)模塊102和服務(wù)器103交互,包括:
[0067]移動(dòng)終端上的正向代理服務(wù)模塊102與服務(wù)器103之間建立長(zhǎng)連接;
[0068]所述正向代理服務(wù)模塊102通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述移動(dòng)終端10上的應(yīng)用與所述服務(wù)器103之間交互的信息。
[0069]本實(shí)施提供的技術(shù)方案中,通過(guò)在移動(dòng)終端上設(shè)置正向代理服務(wù)模塊,移動(dòng)終端上包括多個(gè)應(yīng)用,所述多個(gè)應(yīng)用通過(guò)正向代理服務(wù)模塊和服務(wù)器交互,所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接,避免移動(dòng)終端上的每個(gè)應(yīng)用都和服務(wù)器之間建立長(zhǎng)連接,節(jié)約了維護(hù)多個(gè)長(zhǎng)連接帶來(lái)的電量和流量的開(kāi)銷。
[0070]在本實(shí)施例的一種備選方案中,所述移動(dòng)終端上的正向代理服務(wù)模塊102和服務(wù)器103之間建立長(zhǎng)連接的一種方式為:
[0071]正向代理服務(wù)模塊102首次接收到移動(dòng)終端的應(yīng)用發(fā)起的請(qǐng)求后,將請(qǐng)求發(fā)送給服務(wù)器103,服務(wù)器103將請(qǐng)求轉(zhuǎn)發(fā)給消息中心。
[0072]如果消息中心還沒(méi)有啟動(dòng)則服務(wù)器103向客戶端返回錯(cuò)誤應(yīng)答后關(guān)閉連接;
[0073]如果消息中心已啟動(dòng),則消息中心先驗(yàn)證請(qǐng)求的合法性,如果合法且未出錯(cuò)則返回應(yīng)答,應(yīng)答包里攜帶消息或者為空,服務(wù)器103向正向代理服務(wù)模塊102轉(zhuǎn)發(fā)該應(yīng)答,并將連接保持為長(zhǎng)連接;如果請(qǐng)求不合法或者消息中心在處理請(qǐng)求時(shí)出錯(cuò)則返回錯(cuò)誤應(yīng)答,服務(wù)器103向正向代理服務(wù)模塊102轉(zhuǎn)發(fā)該應(yīng)答,然后關(guān)閉連接。
[0074]當(dāng)然,正向代理服務(wù)模塊102和服務(wù)器103之間的長(zhǎng)連接的建立也可以不需要移動(dòng)終端上的應(yīng)用的觸發(fā),正向代理服務(wù)模塊102啟動(dòng)后就和服務(wù)器103之間建立長(zhǎng)連接,后續(xù)接收到移動(dòng)終端上的應(yīng)用的請(qǐng)求時(shí),通過(guò)所述已建立的長(zhǎng)連接和服務(wù)器103交互。
[0075]如果正向代理服務(wù)模塊102和服務(wù)器103之間基于HTTP CHUNK協(xié)議實(shí)現(xiàn),則長(zhǎng)連接的建立包括:
[0076]正向代理服務(wù)模塊102首次接收到移動(dòng)終端的應(yīng)用發(fā)起的HTTP請(qǐng)求后,和服務(wù)器103交互,服務(wù)器103將HTTP請(qǐng)求轉(zhuǎn)發(fā)給消息中心。[0077]如果消息中心已啟動(dòng),則消息中心先驗(yàn)證請(qǐng)求的合法性,如果合法且未出錯(cuò)則返回HTTP狀態(tài)碼為200的應(yīng)答,應(yīng)答包里攜帶消息或者為空,服務(wù)器103以HTTP CHUNK格式向正向代理服務(wù)模塊102轉(zhuǎn)發(fā)該應(yīng)答,并將連接保持為長(zhǎng)連接;如果請(qǐng)求不合法或者消息中心在處理請(qǐng)求時(shí)出錯(cuò)則返回HTTP狀態(tài)碼不為200的應(yīng)答,服務(wù)器103收到此類應(yīng)答后會(huì)以HTTP的普通格式向正向代理服務(wù)模塊102轉(zhuǎn)發(fā)該應(yīng)答,然后關(guān)閉連接。如果消息中心還沒(méi)有啟動(dòng)則服務(wù)器103向客戶端返回502Bad Gateway(網(wǎng)關(guān)錯(cuò)誤)應(yīng)答后關(guān)閉連接,其他情況下的異常處理和正常的HTTP標(biāo)準(zhǔn)操作一致。
[0078]該實(shí)施例中,所述正向代理服務(wù)模塊102通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述移動(dòng)終端上的應(yīng)用與所述服務(wù)器103之間交互的信息包括:
[0079]所述正向代理服務(wù)模塊102接收所述移動(dòng)終端上的應(yīng)用發(fā)送的請(qǐng)求,將所述請(qǐng)求通過(guò)所述長(zhǎng)連接發(fā)送給所述服務(wù)器,和/或,通過(guò)所述長(zhǎng)連接接收所述服務(wù)器103發(fā)送給所述移動(dòng)終端上的應(yīng)用的消息,將所述消息轉(zhuǎn)發(fā)給所述移動(dòng)終端上的應(yīng)用。
[0080]其中,同一移動(dòng)終端上的多個(gè)應(yīng)用可以使用該移動(dòng)終端上的正向代理服務(wù)模塊102和服務(wù)器103之間建立的長(zhǎng)連接。本申請(qǐng)不限定同一移動(dòng)終端上的所有應(yīng)用都使用該長(zhǎng)連接,移動(dòng)終端上的部分應(yīng)用也可以直接和服務(wù)器103建立長(zhǎng)連接。
[0081]在本實(shí)施例的一種備選方案中,所述正向代理服務(wù)模塊102接收所述移動(dòng)終端上的應(yīng)用發(fā)送的請(qǐng)求,將所述請(qǐng)求通過(guò)所述長(zhǎng)連接發(fā)送給所述服務(wù)器103包括但不限于:
[0082]所述正向代理服務(wù)模塊102接收到所述移動(dòng)終端上的應(yīng)用的請(qǐng)求后,緩存該請(qǐng)求,到達(dá)預(yù)設(shè)時(shí)間間隔或預(yù)設(shè)時(shí)間間隔內(nèi)緩存的請(qǐng)求個(gè)數(shù)達(dá)到指定個(gè)數(shù)后,將緩存的未發(fā)送的請(qǐng)求合并到請(qǐng)求包中通過(guò)所述長(zhǎng)連接發(fā)送給所述服務(wù)器103。具體的,以預(yù)設(shè)時(shí)間間隔為周期,到達(dá)預(yù)設(shè)時(shí)間間隔后,如果有緩存的請(qǐng)求,則合并到請(qǐng)求包中發(fā)送,如果沒(méi)有,則不操作,或者,預(yù)設(shè)時(shí)間間隔內(nèi)緩存的請(qǐng)求個(gè)數(shù)達(dá)到指定個(gè)數(shù),則將緩存的請(qǐng)求合并到請(qǐng)求包中發(fā)送。
[0083]當(dāng)然,正向代理服務(wù)模塊102可以收到移動(dòng)終端上的應(yīng)用的請(qǐng)求后立即轉(zhuǎn)發(fā)給服務(wù)器103,也可以緩存移動(dòng)終端上的應(yīng)用發(fā)送的請(qǐng)求,將多個(gè)請(qǐng)求合并在一個(gè)請(qǐng)求包中發(fā)送。合并發(fā)送的請(qǐng)求包中只有一個(gè)請(qǐng)求包頭,相對(duì)于單獨(dú)發(fā)送每個(gè)請(qǐng)求的方式,可以減少請(qǐng)求包頭的開(kāi)銷,另外,可以大大減少和服務(wù)器103之間的交互,降低開(kāi)銷。
[0084]在本實(shí)施例的一種備選方案中,為移動(dòng)終端的每個(gè)應(yīng)用分配獨(dú)立的DEVICE ID(設(shè)備標(biāo)識(shí)),每個(gè)移動(dòng)終端的每個(gè)應(yīng)用都有全局唯一的DEVICEID,一個(gè)DEVICE ID唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用。
[0085]移動(dòng)終端上的應(yīng)用向正向代理服務(wù)模塊102發(fā)送請(qǐng)求時(shí),攜帶自身的DEVICE ID ;所述正向代理服務(wù)模塊102將多個(gè)請(qǐng)求合并成請(qǐng)求包時(shí),所述請(qǐng)求包中攜帶所合并的各請(qǐng)求對(duì)應(yīng)的設(shè)備標(biāo)識(shí)。正向代理服務(wù)模塊102接收到的來(lái)自服務(wù)器103的消息中,也通過(guò)DEVICE ID區(qū)分發(fā)送給各移動(dòng)終端上的應(yīng)用的消息內(nèi)容;其中,服務(wù)器103發(fā)送給正向代理服務(wù)模塊102的消息中攜帶一套或多套信息,每套信息包括:消息內(nèi)容及該消息內(nèi)容對(duì)應(yīng)的移動(dòng)終端上的應(yīng)用的DEVICE ID。
[0086]所述正向代理服務(wù)模塊102將從服務(wù)器103接收到的消息拆分成子消息,每個(gè)子消息包括一套上述信息(一個(gè)DEVICE ID及其對(duì)應(yīng)的消息內(nèi)容),正向代理服務(wù)模塊102根據(jù)所述子消息中的DEVICE ID將子消息發(fā)送給對(duì)應(yīng)的移動(dòng)終端上的應(yīng)用。[0087]在本實(shí)施例的一種備選方案中,所述正向代理服務(wù)模塊102和所述服務(wù)器103之間的所述長(zhǎng)連接可以基于HTTP CHUNK (超文本傳送協(xié)議塊)協(xié)議。但是,本申請(qǐng)中,正向代理服務(wù)模塊102和服務(wù)器103之間的長(zhǎng)連接不限于使用HTTP CHUNK協(xié)議,也可以基于其他已有協(xié)議,或者,自定義的協(xié)議?;贖TTP CHUNK協(xié)議的優(yōu)勢(shì)在于HTTP CHUNK是已有的成熟協(xié)議,不同平臺(tái)的移動(dòng)終端和后臺(tái)服務(wù)器103對(duì)該協(xié)議都有成熟的開(kāi)發(fā)組件,不存在實(shí)現(xiàn)新的協(xié)議帶來(lái)的額外的開(kāi)發(fā)量;另外,由于采用HTTP CHUNK協(xié)議,各平臺(tái)均可支持,因此,本申請(qǐng)實(shí)施例的技術(shù)方案可以跨平臺(tái)使用,不同于現(xiàn)有Android和IPhone上的消息推送方法,均局限于特定的系統(tǒng)。
[0088]實(shí)施例二
[0089]本實(shí)施例提供一種實(shí)現(xiàn)向移動(dòng)終端推送消息的方法,服務(wù)器103側(cè)的操作包括:
[0090]服務(wù)器與移動(dòng)終端之間建立長(zhǎng)連接;
[0091]所述服務(wù)器通過(guò)所述長(zhǎng)連接與所述移動(dòng)終端上的應(yīng)用交互。具體的,所述服務(wù)器通過(guò)所述長(zhǎng)連接將所述移動(dòng)終端上的多個(gè)應(yīng)用的請(qǐng)求轉(zhuǎn)發(fā)至消息中心,將所述消息中心發(fā)出的與所述多個(gè)應(yīng)用對(duì)應(yīng)的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端,其中所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接。
[0092]在本實(shí)施例的一種備選方案中,服務(wù)器與移動(dòng)終端建立長(zhǎng)連接為服務(wù)器與移動(dòng)終端上的正向代理服務(wù)模塊建立長(zhǎng)連接。
[0093]在本實(shí)施例的一種備選方案中,所述服務(wù)器通過(guò)所述長(zhǎng)連接與所述移動(dòng)終端上的應(yīng)用交互包括:
[0094]所述服務(wù)器通過(guò)所述長(zhǎng)連接接收來(lái)自所述移動(dòng)終端上的應(yīng)用的請(qǐng)求,將所述請(qǐng)求發(fā)送給消息中心,和/或,接收到所述消息中心發(fā)送給所述移動(dòng)終端上的應(yīng)用的消息后,將所述消息通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)給所述移動(dòng)終端。
[0095]在本實(shí)施例的一種備選方案中,服務(wù)器將請(qǐng)求轉(zhuǎn)發(fā)給消息中心,消息中心接收到服務(wù)器轉(zhuǎn)發(fā)的請(qǐng)求后,當(dāng)該請(qǐng)求中包含多個(gè)應(yīng)用的請(qǐng)求時(shí),將其拆分成多個(gè)請(qǐng)求并分別處理每個(gè)應(yīng)用的請(qǐng)求,再向服務(wù)器返回應(yīng)答。
[0096]在本實(shí)施例的一種備選方案中,移動(dòng)終端和所述服務(wù)器之間的所述長(zhǎng)連接基于超文本傳送協(xié)議塊(HTTP CHUNK)協(xié)議。
[0097]在該備選方案中,服務(wù)器按照固定頻率向移動(dòng)終端發(fā)送HTTP CHUNK來(lái)實(shí)現(xiàn)長(zhǎng)連接的?;?。對(duì)于不同的運(yùn)營(yíng)商該固定頻率是不一樣的。由于這個(gè)HTTP CHUNK不傳送實(shí)際數(shù)據(jù),因此只在CHUNK里面只放置一個(gè)字符。當(dāng)然,本申請(qǐng)不限于此,也可以在CHUNK里放置
更多字符。
[0098]在本實(shí)施例的一種備選方案中,服務(wù)器從所述移動(dòng)終端發(fā)送的請(qǐng)求中獲取使用所述長(zhǎng)連接的所述移動(dòng)終端上的各應(yīng)用的DEVICE ID,維護(hù)所述DEVICE ID與所述長(zhǎng)連接的關(guān)聯(lián)關(guān)系。
[0099]服務(wù)器可以采取多種方式維護(hù)DEVICE ID和長(zhǎng)連接之間的關(guān)聯(lián)關(guān)系;其中一種方式是:服務(wù)器用紅黑樹(shù)維護(hù)DEVICE ID和長(zhǎng)連接之間的關(guān)聯(lián),一條長(zhǎng)連接對(duì)應(yīng)多個(gè)DEVICEID,因此在紅黑樹(shù)上存在多個(gè)節(jié)點(diǎn)的長(zhǎng)連接為同一條連接的情況。也可以采取除紅黑樹(shù)外的其他方式進(jìn)行維護(hù),比如:鏈表等,本申請(qǐng)對(duì)此不作限定。
[0100]其中,服務(wù)器轉(zhuǎn)發(fā)的來(lái)自消息中心的消息可以是針對(duì)移動(dòng)終端上的應(yīng)用的請(qǐng)求的應(yīng)答,也可以是消息中心主動(dòng)發(fā)送給移動(dòng)終端上的應(yīng)用的消息。
[0101]在本實(shí)施例的一種備選方案中,服務(wù)器通過(guò)如下方式轉(zhuǎn)發(fā)來(lái)自消息中心的消息:
[0102]所述服務(wù)器接收到所述消息中心發(fā)送給所述移動(dòng)終端上的應(yīng)用的消息后,獲取所述消息中攜帶的DEVICE ID,根據(jù)所述DEVICE ID查找其關(guān)聯(lián)的長(zhǎng)連接,將所述消息通過(guò)其關(guān)聯(lián)的長(zhǎng)連接發(fā)送給對(duì)應(yīng)的移動(dòng)終端。
[0103]在本實(shí)施例的一種備選方案中,服務(wù)器將消息中心發(fā)送給同一個(gè)移動(dòng)終端上的多個(gè)應(yīng)用的消息合并在一個(gè)數(shù)據(jù)包中通過(guò)所述長(zhǎng)連接發(fā)送給所述移動(dòng)終端。具體的,當(dāng)多個(gè)消息中攜帶的DEVICE ID關(guān)聯(lián)同一個(gè)長(zhǎng)連接時(shí),所述服務(wù)器將所述多個(gè)消息合并在一個(gè)數(shù)據(jù)包中通過(guò)所述長(zhǎng)連接發(fā)送給所述正向代理服務(wù)模塊102。
[0104]該備選方案中,服務(wù)器向正向代理服務(wù)模塊102返回的數(shù)據(jù)包的一種格式圖2所示,包括如下字段:總長(zhǎng)度,以及,一個(gè)或多個(gè)數(shù)據(jù)段,每個(gè)數(shù)據(jù)段包括如下子字段:消息長(zhǎng)度、DEVICE ID、消息體。圖2所示格式僅為實(shí)例,本申請(qǐng)不限于該格式。其中,總長(zhǎng)度代表該數(shù)據(jù)包的長(zhǎng)度,消息長(zhǎng)度代表該數(shù)據(jù)段的長(zhǎng)度,DEVICE ID代表該數(shù)據(jù)段中攜帶的消息是給哪一個(gè)終端上的哪個(gè)應(yīng)用、消息體中攜帶具體的消息內(nèi)容。
[0105]在本實(shí)施例的一種備選方案中,移動(dòng)終端訂閱的業(yè)務(wù)可以包括第一類業(yè)務(wù)和第二類業(yè)務(wù),第一類業(yè)務(wù)需要服務(wù)器以預(yù)設(shè)頻率向消息中心查詢是否有新消息,而第二類業(yè)務(wù)需要消息中心在有新消息時(shí)主動(dòng)通知服務(wù)器。至于哪些業(yè)務(wù)是第一類業(yè)務(wù),哪些業(yè)務(wù)是第二類業(yè)務(wù),可以根據(jù)需要設(shè)定,本申請(qǐng)對(duì)此不作限定。比如,將緊急消息業(yè)務(wù)設(shè)置為第二類業(yè)務(wù),將其他消息業(yè)務(wù)設(shè)置為第一類業(yè)務(wù)。該備選方案中,將主動(dòng)通知和輪詢的方式進(jìn)行結(jié)合,這樣既減輕了頻繁輪詢帶來(lái)的服務(wù)器壓力,又保證了第二類業(yè)務(wù)的實(shí)時(shí)性。
[0106]該備選方案中,對(duì)第二類業(yè)務(wù),服務(wù)器在收到客戶端請(qǐng)求后向消息中心請(qǐng)求數(shù)據(jù)并將消息轉(zhuǎn)發(fā)給移動(dòng)終端,此后服務(wù)器以一個(gè)預(yù)設(shè)頻率主動(dòng)輪詢消息中心以探測(cè)是否有新的消息;該預(yù)設(shè)頻率根據(jù)可以需要選擇,比如可以通過(guò)測(cè)試的方法確定一個(gè)頻率閾值,預(yù)設(shè)頻率不大于該頻率閾值即可,避免對(duì)消息中心構(gòu)成壓力。消息中心收到服務(wù)器的輪詢時(shí),檢查是否有新的消息生成,有則將新的消息發(fā)送給服務(wù)器,沒(méi)有則告訴服務(wù)器當(dāng)前沒(méi)有新的消息。
[0107]該備選方案中,如果移動(dòng)終端的多個(gè)應(yīng)用中訂閱了第二類業(yè)務(wù),比如緊急消息,此時(shí)需要消息中心在有新消息時(shí)主動(dòng)通知服務(wù)器去取消息。所述服務(wù)器監(jiān)聽(tīng)指定端口,并在監(jiān)聽(tīng)到有第二業(yè)務(wù)的新消息的通知時(shí),向所述消息中心獲取所述第二類業(yè)務(wù)的新消息。一種實(shí)現(xiàn)方式是:服務(wù)器單獨(dú)開(kāi)啟監(jiān)聽(tīng)端口,消息中心在有消息時(shí)通過(guò)該端口以UDP(UserDatagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)格式告知服務(wù)器有消息可取,服務(wù)器發(fā)起請(qǐng)求獲取消息。
[0108]服務(wù)器通過(guò)監(jiān)聽(tīng)端口獲取到消息中心發(fā)來(lái)的通知,該通知中攜帶多個(gè)DEVICE ID,服務(wù)器解析通知獲得各個(gè)獨(dú)立的DEVICE ID,再向消息中心獲取這些DEVICE ID相關(guān)的消
肩、O
[0109]在本實(shí)施例的一個(gè)備選方案中,在移動(dòng)終端上的應(yīng)用上線后,服務(wù)器向消息中心發(fā)出一個(gè)上線通知,告知消息中心該移動(dòng)終端的該應(yīng)用已上線,消息中心據(jù)此獲悉該移動(dòng)終端的應(yīng)用訂閱的第二類消息的類型。當(dāng)移動(dòng)終端上的應(yīng)用下線時(shí),或者服務(wù)器和正向代理服務(wù)模塊102的長(zhǎng)連接關(guān)閉或中斷時(shí),服務(wù)器向消息中心發(fā)起一個(gè)下線通知,告知消息中心該移動(dòng)終端的該應(yīng)用已下線,消息中心獲悉后不再查詢和通知該移動(dòng)終端的該應(yīng)用訂閱的第二類消息。其中,服務(wù)器和正向代理服務(wù)模塊102的長(zhǎng)連接關(guān)閉或中斷時(shí),可以直接告知消息中心該移動(dòng)終端的全部應(yīng)用下線。
[0110]上線通知的一種格式如圖4所示,包括如下字段:總長(zhǎng)度、DEVICE ID字段和IP字段,其中:總長(zhǎng)度字段表示上線通知的長(zhǎng)度,DEVICE ID字段中攜帶DEVICE ID,指示是哪一個(gè)終端的哪個(gè)應(yīng)用上線,IP字段中攜帶該移動(dòng)終端的地址信息。
[0111]下線通知的一種格式如圖5所示,包括如下字段:總長(zhǎng)度、DEVICE ID字段,其中:總長(zhǎng)度字段表示下線通知的長(zhǎng)度,DEVICE ID字段中攜帶DEVICE ID,指示是哪一個(gè)終端的哪個(gè)應(yīng)用下線。
[0112]實(shí)施例三
[0113]本實(shí)施例提供一種實(shí)現(xiàn)向移動(dòng)終端推送消息的方法,消息中心側(cè)的操作包括:
[0114]消息中心判斷滿足第一預(yù)設(shè)條件后,通知服務(wù)器該移動(dòng)終端上的應(yīng)用有新消息;所述第一預(yù)設(shè)條件包括:所述消息中心有已上線的移動(dòng)終端上的應(yīng)用訂閱的第二類業(yè)務(wù)的新消息。
[0115]對(duì)于終端上應(yīng)用訂閱的第二類業(yè)務(wù),需要消息中心在有新消息時(shí),主動(dòng)通知服務(wù)器。消息中心在有新消息時(shí),通過(guò)UDP在指定端口向服務(wù)器發(fā)通知,由于UDP數(shù)據(jù)包是有邊界的,為避免數(shù)據(jù)被截?cái)?,該通知的長(zhǎng)度不大于UDP數(shù)據(jù)包最大長(zhǎng)度;比如,如果每個(gè)DEVICE ID長(zhǎng)度為40個(gè)字節(jié),則每個(gè)通知的DEVICE ID個(gè)數(shù)不超過(guò)36。當(dāng)然,DEVICE ID長(zhǎng)度不限于40個(gè)字節(jié),則每個(gè)通知中DEVICE ID最大個(gè)數(shù)相應(yīng)變化。當(dāng)然,也可以采取其他協(xié)議發(fā)送該通知。
[0116]所述第一預(yù)設(shè)條件還包括:在第二時(shí)間間隔內(nèi)的所述新消息的個(gè)數(shù)超過(guò)消息閾值,或者,到達(dá)第二時(shí)間間隔。為減少大量小包的網(wǎng)絡(luò)收發(fā)帶來(lái)的性能瓶頸,消息中心設(shè)置了消息閾值和第二時(shí)間間隔,在第二時(shí)間間隔到達(dá)或者第二時(shí)間間隔內(nèi)消息個(gè)數(shù)超過(guò)消息閾值,則向服務(wù)器發(fā)送通知。比如,第二時(shí)間間隔為10s,消息閾值為20條,則通常情況下在消息中心啟動(dòng)后,每隔10s,如果該IOs內(nèi)有新消息,則發(fā)送通知給服務(wù)器,或者,該IOs內(nèi)累積的新消息超過(guò)20條時(shí),到達(dá)消息閾值的時(shí)候就發(fā)送通知給服務(wù)器。
[0117]在本實(shí)施例的一種備選方案中,所述消息中心通知服務(wù)器該移動(dòng)終端上的應(yīng)用有新消息包括:
[0118]所述消息中心發(fā)送通知消息給所述服務(wù)器,所述通知消息中攜帶一個(gè)或多個(gè)設(shè)備標(biāo)識(shí)。即消息中心可以一次向服務(wù)器通知多臺(tái)移動(dòng)終端的多個(gè)應(yīng)用有數(shù)據(jù)可取。通知消息的一種格式如圖3所示,包括如下字段:總長(zhǎng)度,以及一個(gè)或多個(gè)DEVICE ID字段,其中,總長(zhǎng)度字段表示該通知消息的長(zhǎng)度;每個(gè)DEVICE ID字段中攜帶一個(gè)DEVICE ID,指示該DEVICE ID對(duì)應(yīng)的終端的應(yīng)用有新消息。
[0119]消息中心需要維護(hù)移動(dòng)終端的在線信息。消息中心根據(jù)服務(wù)器發(fā)送的上線通知和下線通知獲得移動(dòng)終端是否在線的信息。所述消息中心接收到所述服務(wù)器發(fā)送的移動(dòng)終端上的應(yīng)用上線的上線通知后,記錄相應(yīng)的移動(dòng)終端上的應(yīng)用已上線;以及,所述消息中心接收到所述服務(wù)器發(fā)送的移動(dòng)終端上的應(yīng)用的下線通知后,記錄相應(yīng)的移動(dòng)終端上的應(yīng)用已下線或者刪除該移動(dòng)終端上的應(yīng)用的上線信息。
[0120]下面通過(guò)一個(gè)應(yīng)用實(shí)例進(jìn)一步說(shuō)明本申請(qǐng)。[0121]如圖6所示,Android手機(jī)上的手機(jī)淘寶601、手機(jī)旺旺602和手機(jī)支付寶603等應(yīng)用通過(guò)正向代理服務(wù)模塊604向服務(wù)器605發(fā)起Http請(qǐng)求,服務(wù)器605將Http請(qǐng)求轉(zhuǎn)發(fā)給后端的消息中心606,消息中心606從物流中心607、軟件市場(chǎng)608獲取和該用戶相關(guān)的消息,發(fā)送給服務(wù)器605,服務(wù)器605通過(guò)Http Chunk向正向代理服務(wù)模塊返回Http應(yīng)答,正向代理服務(wù)模塊收到后將應(yīng)答拆分并單獨(dú)發(fā)送給手機(jī)淘寶、手機(jī)旺旺或手機(jī)支付寶。
[0122]對(duì)第一類業(yè)務(wù),服務(wù)器605以預(yù)設(shè)間隔時(shí)間輪詢消息中心,對(duì)第二類業(yè)務(wù),消息中心在發(fā)現(xiàn)有新消息時(shí)也會(huì)主動(dòng)告知服務(wù)器605 ;
[0123]服務(wù)器605獲取消息后以Http Chunk格式向正向代理服務(wù)模塊發(fā)送。
[0124]如果沒(méi)有新消息產(chǎn)生,服務(wù)器605和正向代理服務(wù)模塊之間通過(guò)HttpChunk來(lái)?;铋L(zhǎng)連接。
[0125]實(shí)施例四
[0126]本實(shí)施例提供一種移動(dòng)終端,所述移動(dòng)終端安裝有多個(gè)應(yīng)用,所述移動(dòng)終端包括正向代理服務(wù)模塊。如圖7所示,所述正向代理服務(wù)模塊包括:第一連接建立單元701和第一交互單元702,其中:
[0127]所述第一連接建立單元701用于:與服務(wù)器之間建立長(zhǎng)連接;
[0128]所述第一交互單元702用于,通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)移動(dòng)終端上的應(yīng)用與所述服務(wù)器之間交互的信息。
[0129]在本實(shí)施例的一種備選方案中,所述第一交互單元702通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述移動(dòng)終端上的應(yīng)用與所述服務(wù)器之間交互的信息包括:
[0130]所述第一交互單元702接收所述移動(dòng)終端上的應(yīng)用發(fā)送的請(qǐng)求,將所述請(qǐng)求通過(guò)所述長(zhǎng)連接發(fā)送給所述服務(wù)器,和/或,通過(guò)所述長(zhǎng)連接接收所述服務(wù)器發(fā)送給所述移動(dòng)終端上的應(yīng)用的消息,將所述消息轉(zhuǎn)發(fā)給所述移動(dòng)終端上的應(yīng)用。
[0131 ] 在本實(shí)施例的一種備選方案中,所述第一交互單元702通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述移動(dòng)終端上的應(yīng)用與所述服務(wù)器之間交互的信息包括:
[0132]所述第一交互單元702通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)該移動(dòng)終端上的多個(gè)應(yīng)用與所述服務(wù)器之間交互的信息。
[0133]在本實(shí)施例的一種備選方案中,所述第一交互單元702接收所述移動(dòng)終端上的應(yīng)用發(fā)送的請(qǐng)求,將所述請(qǐng)求通過(guò)所述長(zhǎng)連接發(fā)送給所述服務(wù)器包括:
[0134]所述第一交互單元702接收到所述移動(dòng)終端上的應(yīng)用的請(qǐng)求后,緩存該請(qǐng)求,到達(dá)預(yù)設(shè)時(shí)間間隔或預(yù)設(shè)時(shí)間間隔內(nèi)緩存的請(qǐng)求個(gè)數(shù)達(dá)到指定個(gè)數(shù)后,將緩存的請(qǐng)求合并到請(qǐng)求包中通過(guò)所述長(zhǎng)連接發(fā)送給所述服務(wù)器。
[0135]在本實(shí)施例的一種備選方案中,所述第一交互單元702接收的所述移動(dòng)終端上的應(yīng)用的請(qǐng)求中攜帶發(fā)起該請(qǐng)求的應(yīng)用的設(shè)備標(biāo)識(shí);
[0136]所述第一交互單元702還用于:將所述緩存的未發(fā)送的請(qǐng)求合并到所述請(qǐng)求包中時(shí),所述請(qǐng)求包中攜帶所合并的各請(qǐng)求中攜帶的設(shè)備標(biāo)識(shí);其中,一個(gè)所述設(shè)備標(biāo)識(shí)唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用;
[0137]所述第一交互單元702還用于,從所述服務(wù)器收到消息后,所述消息中攜帶一套或多套信息,每套信息包括消息內(nèi)容及該消息內(nèi)容對(duì)應(yīng)的移動(dòng)終端上的應(yīng)用的設(shè)備標(biāo)識(shí);根據(jù)所述消息中的設(shè)備標(biāo)識(shí)將該消息拆分成子消息,每個(gè)子消息包括一套所述信息,根據(jù)所述子消息中的設(shè)備標(biāo)識(shí)將所述子消息發(fā)送給所述移動(dòng)終端上對(duì)應(yīng)的應(yīng)用。
[0138]在本實(shí)施例的一種備選方案中,所述第一連接建立單元701和所述服務(wù)器之間的所述長(zhǎng)連接基于HTTP CHUNK協(xié)議。
[0139]實(shí)施例五
[0140]本實(shí)施例提供一種消息推送系統(tǒng),所述消息推送系統(tǒng)包括服務(wù)器及消息中心。如圖8所示,所述服務(wù)器包括:
[0141]第二連接建立單元801,用于與移動(dòng)終端之間建立長(zhǎng)連接;
[0142]第二交互單元802,用于通過(guò)所述長(zhǎng)連接與所述移動(dòng)終端上的應(yīng)用交互。包括:通過(guò)所述長(zhǎng)連接將所述移動(dòng)終端上的多個(gè)應(yīng)用的請(qǐng)求轉(zhuǎn)發(fā)至所述消息中心,并將所述消息中心對(duì)應(yīng)于所述多個(gè)應(yīng)用的請(qǐng)求所發(fā)出的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端,其中所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接。
[0143]所述消息中心用于,接收所述服務(wù)器轉(zhuǎn)發(fā)的所述多個(gè)應(yīng)用的請(qǐng)求并對(duì)應(yīng)于所述多個(gè)應(yīng)用的請(qǐng)求返回消息。
[0144]在本實(shí)施例的一種備選方案中,所述第二交互單元802通過(guò)所述長(zhǎng)連接將所述移動(dòng)終端上的多個(gè)應(yīng)用的請(qǐng)求轉(zhuǎn)發(fā)至所述消息中心,并將所述消息中心對(duì)應(yīng)于所述多個(gè)應(yīng)用的請(qǐng)求所發(fā)出的消息封裝成一個(gè)數(shù)據(jù)包,通過(guò)所述長(zhǎng)連接將所述數(shù)據(jù)包轉(zhuǎn)發(fā)至所述移動(dòng)終端。
[0145]在本實(shí)施例的一種備選方案中,所述第二連接建立單元801和所述正向代理服務(wù)模塊之間的所述長(zhǎng)連接基于HTTP CHUNK協(xié)議。
[0146]在本實(shí)施例的一種備選方案中,所述服務(wù)器還包括關(guān)聯(lián)信息管理單元803,用于從所述移動(dòng)終端發(fā)送的所述請(qǐng)求中獲取使用所述長(zhǎng)連接的所述移動(dòng)終端上的各應(yīng)用的設(shè)備標(biāo)識(shí),維護(hù)所述設(shè)備標(biāo)識(shí)與所述長(zhǎng)連接的關(guān)聯(lián)關(guān)系,其中,所述設(shè)備標(biāo)識(shí)唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用。
[0147]在本實(shí)施例的一種備選方案中,所述第二交互單元802接收到所述消息中心發(fā)送給所述移動(dòng)終端上的應(yīng)用的消息后,將所述消息通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)給所述正向代理服務(wù)模塊包括:
[0148]所述第二交互單元802接收到所述消息中心發(fā)送給所述移動(dòng)終端上的應(yīng)用的消息后,獲取所述消息中攜帶的設(shè)備標(biāo)識(shí),根據(jù)所述設(shè)備標(biāo)識(shí)查找其關(guān)聯(lián)的長(zhǎng)連接,將所述消息通過(guò)其關(guān)聯(lián)的長(zhǎng)連接發(fā)送給對(duì)應(yīng)的移動(dòng)終端。
[0149]在本實(shí)施例的一種備選方案中,所述第二交互單元802將所述消息通過(guò)其關(guān)聯(lián)的長(zhǎng)連接發(fā)送給對(duì)應(yīng)的移動(dòng)終端包括:
[0150]將關(guān)聯(lián)同一個(gè)長(zhǎng)連接的多個(gè)消息封裝在一個(gè)數(shù)據(jù)包中,將所述數(shù)據(jù)包通過(guò)所述長(zhǎng)連接發(fā)送給所述移動(dòng)終端。
[0151]在本實(shí)施例的一種備選方案中,所述第二交互單元將所述消息中心對(duì)應(yīng)于所述多個(gè)應(yīng)用的請(qǐng)求所發(fā)出的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端包括:所述第二交互單元收到所述多個(gè)應(yīng)用的消息后,判斷所述多個(gè)應(yīng)用的消息的設(shè)備標(biāo)識(shí)關(guān)聯(lián)同一個(gè)長(zhǎng)連接,將所述多個(gè)應(yīng)用的消息封裝在一個(gè)數(shù)據(jù)包中,將所述數(shù)據(jù)包通過(guò)所述長(zhǎng)連接發(fā)送給所述移動(dòng)終端。
[0152]在本實(shí)施例的一種備選方案中,所述服務(wù)器還包括輪詢單元804和監(jiān)聽(tīng)單元805,其中:
[0153]所述輪詢單元804用于,當(dāng)所述移動(dòng)終端上的應(yīng)用訂閱了第一類業(yè)務(wù)時(shí),以預(yù)設(shè)頻率主動(dòng)輪詢所述消息中心是否有所述第一類業(yè)務(wù)的新消息,且所述預(yù)設(shè)頻率不大于頻率閾值;
[0154]所述監(jiān)聽(tīng)單元805用于,當(dāng)所述移動(dòng)終端上的應(yīng)用訂閱了第二類業(yè)務(wù)時(shí),監(jiān)聽(tīng)指定端口,并在監(jiān)聽(tīng)到有所述第二類業(yè)務(wù)的新消息的通知時(shí),向所述消息中心獲取所述第二類業(yè)務(wù)的新消息。
[0155]在本實(shí)施例的一種備選方案中,所述監(jiān)聽(tīng)單元805向所述消息中心獲取所述新消息包括:
[0156]所述監(jiān)聽(tīng)單元805接收到所述通知后,解析所述通知中的設(shè)備標(biāo)識(shí),向所述消息中心獲取每個(gè)設(shè)備標(biāo)識(shí)相關(guān)的新消息。
[0157]在本實(shí)施例的一種備選方案中,所述服務(wù)器還包括第一通知單兀806,用于:
[0158]在所述移動(dòng)終端中的應(yīng)用上線之后,向所述消息中心發(fā)送上線通知,所述上線通知中攜帶所述移動(dòng)終端的該應(yīng)用已上線的信息;
[0159]以及,在所述移動(dòng)終端中的應(yīng)用下線后,或者所述服務(wù)器與所述正向代理服務(wù)模塊之間的長(zhǎng)連接關(guān)閉或者中斷后,向所述消息中興發(fā)送下線通知,所述下線通知中攜帶所述移動(dòng)終端的該應(yīng)用已下線的信息。
[0160]綜上所述,本申請(qǐng)包括如下優(yōu)點(diǎn):
[0161]I)本申請(qǐng)通過(guò)多個(gè)應(yīng)用復(fù)用一個(gè)長(zhǎng)連接,節(jié)省移動(dòng)終端的電量和流量;
[0162]2)本申請(qǐng)通過(guò)現(xiàn)有成熟協(xié)議HTTP CHUNK實(shí)現(xiàn)消息推送和鏈路保活,開(kāi)發(fā)成本小,且能實(shí)現(xiàn)跨平臺(tái);
[0163]3)本申請(qǐng)中,通過(guò)主動(dòng)輪詢和消息通知相結(jié)合的方式來(lái)推送消息,兼顧了服務(wù)器壓力和用戶體驗(yàn)。
[0164]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤(pán)或光盤(pán)等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本申請(qǐng)不限制于任何特定形式的硬件和軟件的結(jié)合。
【權(quán)利要求】
1.一種消息推送實(shí)現(xiàn)方法,其特征在于,包括: 移動(dòng)終端上的正向代理服務(wù)模塊與服務(wù)器之間建立長(zhǎng)連接; 所述正向代理服務(wù)模塊通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述移動(dòng)終端上的應(yīng)用與所述服務(wù)器之間交互的信息;其中,所述移動(dòng)終端上的應(yīng)用包括多個(gè)應(yīng)用;所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接。
2.如權(quán)利要求1所述的方法,其特征在于,所述正向代理服務(wù)模塊通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述移動(dòng)終端上的應(yīng)用與所述服務(wù)器之間交互的信息包括: 所述正向代理服務(wù)模塊接收到所述應(yīng)用的請(qǐng)求后,緩存該請(qǐng)求,到達(dá)預(yù)設(shè)時(shí)間間隔或預(yù)設(shè)時(shí)間間隔內(nèi)緩存的請(qǐng)求個(gè)數(shù)達(dá)到指定個(gè)數(shù)后,將緩存的請(qǐng)求合并到請(qǐng)求包中通過(guò)所述長(zhǎng)連接發(fā)送給所述服務(wù)器。
3.如權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 所述正向代理服務(wù)模塊接收的所述移動(dòng)終端上的應(yīng)用的請(qǐng)求中攜帶發(fā)起該請(qǐng)求的應(yīng)用的設(shè)備標(biāo)識(shí);所述正向代理服務(wù)模塊將所述緩存的未發(fā)送的請(qǐng)求合并到所述請(qǐng)求包中時(shí),所述請(qǐng)求包中攜帶所合并的各請(qǐng)求中攜帶的設(shè)備標(biāo)識(shí);其中,一個(gè)所述設(shè)備標(biāo)識(shí)唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用; 以及,所述正向代理服務(wù)模塊接收到所述服務(wù)器發(fā)送給所述多個(gè)應(yīng)用的消息后,所述消息中攜帶一套或多套信息,每套信息包括消息內(nèi)容及該消息內(nèi)容對(duì)應(yīng)的移動(dòng)終端上的應(yīng)用的設(shè)備標(biāo)識(shí);所述正向代理服務(wù)模塊根據(jù)所述消息中的設(shè)備標(biāo)識(shí)將該消息拆分成子消息,每個(gè)子消息中包括一套所述信息,所述正向代理服務(wù)模塊根據(jù)所述子消息中的設(shè)備標(biāo)識(shí)將所述子消息發(fā)送給該移動(dòng)終端上對(duì)應(yīng)的應(yīng)用。
4.如權(quán)利要求1至3任一所述的方法,其特征在于,所述正向代理服務(wù)模塊和所述服務(wù)器之間的所述長(zhǎng)連接基于超文本傳送協(xié)議塊HTTP CHUNK協(xié)議。
5.一種消息推送實(shí)現(xiàn)方法,其特征在于,包括: 服務(wù)器與移動(dòng)終端之間建立長(zhǎng)連接; 所述服務(wù)器通過(guò)所述長(zhǎng)連接將所述移動(dòng)終端上的多個(gè)應(yīng)用的請(qǐng)求轉(zhuǎn)發(fā)至消息中心,將所述消息中心發(fā)出的與所述多個(gè)應(yīng)用對(duì)應(yīng)的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端,其中所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接。
6.如權(quán)利要求5所述的方法,其特征在于,所述服務(wù)器和所述移動(dòng)終端之間的所述長(zhǎng)連接基于超文本傳送協(xié)議塊HTTP CHUNK協(xié)議。
7.如權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 所述服務(wù)器從所述請(qǐng)求中獲取使用所述長(zhǎng)連接的所述移動(dòng)終端上的各應(yīng)用的設(shè)備標(biāo)識(shí),維護(hù)所述設(shè)備標(biāo)識(shí)與所述長(zhǎng)連接的關(guān)聯(lián)關(guān)系,其中,所述設(shè)備標(biāo)識(shí)唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用。
8.如權(quán)利要求7所述的方法,其特征在于,所述方法還包括: 所述服務(wù)器接收到所述消息中心發(fā)出的消息后,獲取所述消息中攜帶的設(shè)備標(biāo)識(shí),根據(jù)所述設(shè)備標(biāo)識(shí)查找其關(guān)聯(lián)的長(zhǎng)連接,將所述消息通過(guò)其關(guān)聯(lián)的長(zhǎng)連接發(fā)送給對(duì)應(yīng)的移動(dòng)終端。
9.如權(quán)利要求8所述的方法,其特征在于,所述服務(wù)器將所述消息中心發(fā)出的與所述多個(gè)應(yīng)用對(duì)應(yīng)的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端包括:所述服務(wù)器收到所述多個(gè)應(yīng)用的消息后,判斷所述多個(gè)應(yīng)用的消息的設(shè)備標(biāo)識(shí)關(guān)聯(lián)同一個(gè)長(zhǎng)連接,將所述多個(gè)應(yīng)用的消息封裝在一個(gè)數(shù)據(jù)包中,將所述數(shù)據(jù)包通過(guò)所述長(zhǎng)連接發(fā)送給所述移動(dòng)終端。
10.如權(quán)利要求5至9任一所述的方法,其特征在于,所述方法還包括: 當(dāng)所述移動(dòng)終端上的應(yīng)用訂閱了第一類業(yè)務(wù)時(shí),所述服務(wù)器以預(yù)設(shè)頻率主動(dòng)輪詢所述消息中心是否有所述第一類業(yè)務(wù)的新消息,且所述預(yù)設(shè)頻率不大于頻率閾值;以及, 當(dāng)所述移動(dòng)終端上的應(yīng)用訂閱了第二類業(yè)務(wù)時(shí),所述服務(wù)器監(jiān)聽(tīng)指定端口,并在監(jiān)聽(tīng)到有所述第二類業(yè)務(wù)的新消息的通知時(shí),向所述消息中心獲取所述第二類業(yè)務(wù)的新消息。
11.一種移動(dòng)終端,所述移動(dòng)終端安裝多個(gè)應(yīng)用,其特征在于,所述移動(dòng)終端設(shè)有正向代理服務(wù)模塊,所述正向代理服務(wù)模塊包括第一連接建立單元和第一交互單元,其中: 所述第一連接建立單元用于與服務(wù)器之間建立長(zhǎng)連接; 所述第一交互單元用于,通過(guò)所述長(zhǎng)連接轉(zhuǎn)發(fā)所述多個(gè)應(yīng)用與所述服務(wù)器之間交互的信息;所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接。
12.如權(quán)利要求11所述的移動(dòng)終端,其特征在于,所述第一交互單元還用于在接收到所述移動(dòng)終端上的應(yīng)用的請(qǐng)求后,緩存該請(qǐng)求,到達(dá)預(yù)設(shè)時(shí)間間隔或預(yù)設(shè)時(shí)間間隔內(nèi)緩存的請(qǐng)求個(gè)數(shù)達(dá)到指定個(gè)數(shù)后,將緩存的請(qǐng)求合并到請(qǐng)求包中通過(guò)所述長(zhǎng)連接發(fā)送給所述服務(wù)器。
13.如權(quán)利要求12所述的移動(dòng)終端,其特征在于,所述第一交互單元接收的所述移動(dòng)終端上的應(yīng)用的請(qǐng)求中攜帶發(fā)起該請(qǐng)求的應(yīng)用的設(shè)備標(biāo)識(shí); 所述第一交互單元還用于:將所述緩存的未發(fā)送的請(qǐng)求合并到所述請(qǐng)求包中時(shí),所述請(qǐng)求包中攜帶所合并的各請(qǐng)求中攜帶的設(shè)備標(biāo)識(shí);其中,一個(gè)所述設(shè)備標(biāo)識(shí)唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用; 以及,從所述服務(wù)器收到消息后,其中,所述消息中攜帶一套或多套信息,每套信息包括消息內(nèi)容及該消息內(nèi)容對(duì)應(yīng)的移動(dòng)終端上的應(yīng)用的設(shè)備標(biāo)識(shí);根據(jù)所述消息中的設(shè)備標(biāo)識(shí)將該消息拆分成子消息,每個(gè)子消息包括一套所述信息,根據(jù)所述子消息中的設(shè)備標(biāo)識(shí)將所述子消息發(fā)送給所述移動(dòng)終端上對(duì)應(yīng)的應(yīng)用。
14.如權(quán)利要求11至13任一所述的移動(dòng)終端,其特征在于,所述第一連接建立單元和所述服務(wù)器之間的所述長(zhǎng)連接基于超文本傳送協(xié)議塊HTTPCHUNK協(xié)議。
15.一種消息推送系統(tǒng),其特征在于,包括:服務(wù)器及消息中心,所述服務(wù)器包括第二連接建立單元及第二交互單元,其中: 所述第二連接建立單元用于與移動(dòng)終端之間建立長(zhǎng)連接; 所述第二交互單元用于,通過(guò)所述長(zhǎng)連接將所述移動(dòng)終端上的多個(gè)應(yīng)用的請(qǐng)求轉(zhuǎn)發(fā)至所述消息中心,并將所述消息中心對(duì)應(yīng)于所述多個(gè)應(yīng)用的請(qǐng)求所發(fā)出的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端,其中所述多個(gè)應(yīng)用復(fù)用同一長(zhǎng)連接; 所述消息中心用于,接收所述服務(wù)器轉(zhuǎn)發(fā)的所述多個(gè)應(yīng)用的請(qǐng)求并對(duì)應(yīng)于所述多個(gè)應(yīng)用的請(qǐng)求返回消息。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述第二連接建立單元和所述移動(dòng)終端之間的所述長(zhǎng)連接基于超文本傳送協(xié)議塊HTTP CHUNK協(xié)議。
17.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述服務(wù)器還包括關(guān)聯(lián)信息管理單元,所述關(guān)聯(lián)信息管理單元用于從所述移動(dòng)終端發(fā)送的所述請(qǐng)求中獲取使用所述長(zhǎng)連接的所述移動(dòng)終端上的各應(yīng)用的設(shè)備標(biāo)識(shí),維護(hù)所述設(shè)備標(biāo)識(shí)與所述長(zhǎng)連接的關(guān)聯(lián)關(guān)系,其中,所述設(shè)備標(biāo)識(shí)唯一標(biāo)識(shí)一個(gè)移動(dòng)終端上的一個(gè)應(yīng)用; 所述第二交互單元還用于:接收到所述消息中心發(fā)送給所述移動(dòng)終端上的應(yīng)用的消息后,獲取所述消息中攜帶的設(shè)備標(biāo)識(shí),根據(jù)所述設(shè)備標(biāo)識(shí)查找其關(guān)聯(lián)的長(zhǎng)連接,將所述消息通過(guò)其關(guān)聯(lián)的長(zhǎng)連接發(fā)送給對(duì)應(yīng)的移動(dòng)終端。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于, 所述第二交互單元將所述消息中心對(duì)應(yīng)于所述多個(gè)應(yīng)用的請(qǐng)求所發(fā)出的消息通過(guò)所述長(zhǎng)連接發(fā)送至所述移動(dòng)終端包括:所述第二交互單元收到所述多個(gè)應(yīng)用的消息后,判斷所述多個(gè)應(yīng)用的消息的設(shè)備標(biāo)識(shí)關(guān)聯(lián)同一個(gè)長(zhǎng)連接,將所述多個(gè)應(yīng)用的消息封裝在一個(gè)數(shù)據(jù)包中,將所述數(shù)據(jù)包通過(guò)所述長(zhǎng)連接發(fā)送給所述移動(dòng)終端。
19.如權(quán)利要求15至18任一所述的系統(tǒng),其特征在于,所述服務(wù)器還包括輪詢單元和監(jiān)聽(tīng)單元,其中: 所述輪詢單元用于,當(dāng)所述移動(dòng)終端上的應(yīng)用訂閱了第一類業(yè)務(wù)時(shí),以預(yù)設(shè)頻率主動(dòng)輪詢所述消息中心是否有所述第一類業(yè)務(wù)的新消息,且所述預(yù)設(shè)頻率不大于頻率閾值; 所述監(jiān)聽(tīng)單元用于,當(dāng)所述移動(dòng)終端上的應(yīng)用訂閱了第二類業(yè)務(wù)時(shí),監(jiān)聽(tīng)指定端口,并在監(jiān)聽(tīng)到有所述第二類業(yè)務(wù)的新消息的通知時(shí),向所述消息中心獲取所述第二類業(yè)務(wù)的新消息。
【文檔編號(hào)】H04L29/08GK103916442SQ201310004438
【公開(kāi)日】2014年7月9日 申請(qǐng)日期:2013年1月7日 優(yōu)先權(quán)日:2013年1月7日
【發(fā)明者】陳虓將 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
阿克陶县| 永康市| 盐池县| 平度市| 改则县| 增城市| 开平市| 五大连池市| 中江县| 四子王旗| 长治县| 柏乡县| 甘泉县| 金川县| 武邑县| 吐鲁番市| 环江| 安康市| 城市| 礼泉县| 南溪县| 雷州市| 彭州市| 馆陶县| 德化县| 莎车县| 安图县| 建水县| 奈曼旗| 商河县| 溆浦县| 冕宁县| 沅江市| 晋城| 黄大仙区| 永顺县| 缙云县| 明水县| 乐亭县| 房产| 兴仁县|