本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,尤其涉及一種消息推送方法和裝置。
背景技術(shù):
:目前,在很多系統(tǒng)或者客戶端中都涉及消息推送功能。在實際應(yīng)用場景中,客戶端數(shù)量會達(dá)到幾十、甚至上百萬之多,如果所有客戶端都連接到同一臺服務(wù)器上,與該服務(wù)器進(jìn)行與消息推送相關(guān)的信息交互,這樣會給該服務(wù)器造成很大的壓力,甚至導(dǎo)致該服務(wù)器不可使用、宕機(jī)或者出現(xiàn)其他問題。為了解決上述問題,通常在系統(tǒng)中設(shè)置路由服務(wù)器,在路由服務(wù)器中保存記錄有接入服務(wù)器的路由信息的路由列表??蛻舳讼葟穆酚煞?wù)器獲取路由列表,在路由列表中隨機(jī)選取一個路由信息,并根據(jù)該路由信息與對應(yīng)的接入服務(wù)器建立連接,基于該連接與該接入服務(wù)器進(jìn)行與消息推送相關(guān)的信息交互。然而,路由服務(wù)器只是將包含一連串路由信息的路由列表發(fā)送給客戶端,對路由列表中的路由信息沒有進(jìn)行過濾,只能由客戶端隨機(jī)選擇路由信息,這樣將導(dǎo)致客戶端每次連接的接入服務(wù)器不同,在消息推送過程中如果出現(xiàn)問題將不能進(jìn)行問題定位,而且在客戶端升級之后,如果接入服務(wù)器沒有進(jìn)行相應(yīng)的升級,在消息推送過程中將會出現(xiàn)不兼容的問題。技術(shù)實現(xiàn)要素:本發(fā)明提供一種消息推送方法和裝置,旨在解決現(xiàn)有消息推送方法中沒有對路由信息進(jìn)行過濾引發(fā)的問題。針對上述技術(shù)問題,本發(fā)明是通過以下技術(shù)方案來實現(xiàn)的:本發(fā)明提供一種消息推送方法,包括:接收客戶端發(fā)送的客戶端信息;確定所述客戶端信息符合的接入條件;將所述接入條件對應(yīng)的路由信息返回給所述客戶端,以便所述客戶端和所述路由信息對應(yīng)的接入服務(wù)器建立用于消息推送的長連接。其中,所述接收客戶端發(fā)送的客戶端信息,包括:接收客戶端發(fā)送的路由獲取請求;在所述路由獲取請求中攜帶所述客戶端的客戶端信息。其中,所述確定所述客戶端信息符合的接入條件,包括:預(yù)先設(shè)置多個接入條件,為每個所述接入條件設(shè)置對應(yīng)的路由信息,并且為所述多個接入條件設(shè)置執(zhí)行順序;按照所述多個接入條件的執(zhí)行順序,將所述客戶端信息順次與每個所述接入條件進(jìn)行匹配,確定所述客戶端信息第一個符合的接入條件;所述將所述接入條件對應(yīng)的路由信息返回給所述客戶端,包括:將所述客戶端信息第一個符合的接入條件對應(yīng)的路由信息返回給所述客戶端。其中,所述確定所述客戶端信息符合的接入條件,包括:預(yù)先設(shè)置優(yōu)先級不同的多個接入條件,并為每個所述接入條件設(shè)置對應(yīng)的路由信息;所述將所述接入條件對應(yīng)的路由信息返回給所述客戶端,包括:如果所述客戶端信息符合多個接入條件,則將優(yōu)先級最高的接入條件對應(yīng)的路由信息返回給所述客戶端。其中,所述多個接入條件包括:一個默認(rèn)接入條件和一個或多個策略接入條件;所述默認(rèn)接入條件的優(yōu)先級低于所述一個或多個策略接入條件的優(yōu)先級。本發(fā)明提供了一種消息推送裝置,包括:接收模塊,用于接收客戶端發(fā)送的客戶端信息;確定模塊,用于確定所述客戶端信息符合的接入條件;發(fā)送模塊,用于將所述接入條件對應(yīng)的路由信息返回給所述客戶端,以便所述客戶端和所述路由信息對應(yīng)的接入服務(wù)器建立用于消息推送的長連接。其中,所述接收模塊,用于接收客戶端發(fā)送的路由獲取請求;在所述路由獲取請求中攜帶所述客戶端的客戶端信息。其中,所述確定模塊,用于預(yù)先設(shè)置多個接入條件,為每個所述接入條件設(shè)置對應(yīng)的路由信息,并且為所述多個接入條件設(shè)置執(zhí)行順序;按照所述多個接入條件的執(zhí)行順序,將所述客戶端信息順次與每個所述接入條件進(jìn)行匹配,確定所述客戶端信息第一個符合的接入條件;所述發(fā)送模塊,用于將所述客戶端信息第一個符合的接入條件對應(yīng)的路由信息返回給所述客戶端。其中,所述確定模塊,用于預(yù)先設(shè)置優(yōu)先級不同的多個接入條件,并為每個所述接入條件設(shè)置對應(yīng)的路由信息;所述發(fā)送模塊,用于在所述客戶端信息符合多個接入條件的情況下,將優(yōu)先級最高的接入條件對應(yīng)的路由信息返回給所述客戶端。其中,所述多個接入條件包括:一個默認(rèn)接入條件和一個或多個策略接入條件;所述默認(rèn)接入條件的優(yōu)先級低于所述一個或多個策略接入條件的優(yōu)先級。本發(fā)明的有益效果如下:本發(fā)明的路由服務(wù)器根據(jù)客戶端信息為客戶端確定出需要接入的接入服務(wù)器,使客戶端與選定的接入服務(wù)器進(jìn)行長連接,這樣路由服務(wù)器可以確定客戶端連接過的接入服務(wù)器范圍,容易進(jìn)行問題定位;如果客戶端進(jìn)行了更新,那么通過本實施例可以控制客戶端接入同樣完成更新的接入服務(wù)器,進(jìn)而避免了不兼容的問題。附圖說明圖1是根據(jù)本發(fā)明第一實施例的消息推送系統(tǒng)的結(jié)構(gòu)圖;圖2是根據(jù)本發(fā)明第二實施例的消息推送方法的流程圖;圖3是根據(jù)本發(fā)明第三實施例的消息推送方法的流程圖;圖4是根據(jù)本發(fā)明第四實施例的消息推送方法的流程圖;圖5是根據(jù)本發(fā)明第六實施例的消息推送裝置的結(jié)構(gòu)圖。本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進(jìn)一步說明。具體實施方式應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。實施例一本實施例提供一種消息推送系統(tǒng)。圖1是根據(jù)本發(fā)明第一實施例的消息推送系統(tǒng)的結(jié)構(gòu)圖。本實施例的消息推送系統(tǒng)包括:客戶端、路由服務(wù)器和接入服務(wù)器。客戶端,用于從路由服務(wù)器獲取接入服務(wù)器的路由信息,并根據(jù)該路由信息和接入服務(wù)器建立長連接,并且基于該長連接,接收接入服務(wù)器發(fā)送的推送消息。進(jìn)一步地,客戶端的數(shù)量可以是多個。如果一個移動終端中安裝有多個客戶端,則多個客戶端可以分別和接入服務(wù)器建立長連接,并分別接收接入服務(wù)器發(fā)送的推送信息;或者,多個客戶端可以通過移動終端的中控裝置與接入服務(wù)器建立長連接,接入服務(wù)器發(fā)送給某個客戶端的推送信息可以由中控裝置負(fù)責(zé)轉(zhuǎn)發(fā)給該客戶端。路由服務(wù)器,用于存儲接入服務(wù)器的路由信息,并根據(jù)客戶端的信息為客戶端確定出需要接入的接入服務(wù)器的路由信息。進(jìn)一步地,可以采用路由服務(wù)器集群的形式,客戶端連接路由服務(wù)器集群中的一臺路由服務(wù)器即可,如隨機(jī)連接。路由信息被路由服務(wù)器存儲在推送路由列表中。路由服務(wù)器可以根據(jù)客戶端信息,在推送路由表中過濾出客戶端需要接入的接入服務(wù)器的路由信息。接入服務(wù)器,用于和客戶端建立長連接,并基于該長連接向客戶端發(fā)送推送消息。進(jìn)一步地,可以采用接入服務(wù)器集群的形式,客戶端根據(jù)路由服務(wù)器返回的路由地址,和接入服務(wù)器集群中與該路由地址對應(yīng)的接入服務(wù)器建立長連接。在本實施例中,路由服務(wù)器根據(jù)客戶端信息為客戶端確定出需要接入的接入服務(wù)器,使客戶端與選定的接入服務(wù)器進(jìn)行長連接,這樣路由服務(wù)器可以確定客戶端連接過的接入服務(wù)器范圍,容易進(jìn)行問題定位;如果客戶端進(jìn)行了更新,那么通過本實施例可以控制客戶端接入同樣完成更新的接入服務(wù)器,進(jìn)而避免了不兼容的問題。實施例二本實施例提供一種消息推送方法。圖2是根據(jù)本發(fā)明第二實施例的消息推送方法的流程圖。本發(fā)明的執(zhí)行主體為路由服務(wù)器。步驟S210,接收客戶端發(fā)送的客戶端信息??蛻舳诵畔ǖ幌抻冢嚎蛻舳说拿Q、類型、IP(InternetProtocolAddress,互聯(lián)網(wǎng)協(xié)議地址)地址、版本號以及客戶端的登錄信息等。客戶端的登錄信息包括:用戶名、密碼和用戶基本信息。用戶基本信息包括:性別、年齡、地址等信息。具體的,接收客戶端發(fā)送的路由獲取請求;在所述路由獲取請求中攜帶所述客戶端的客戶端信息。該路由獲取請求可以發(fā)送到路由服務(wù)器的路由獲取接口。進(jìn)一步地,本實施例可以在路由獲取接口執(zhí)行。由于系統(tǒng)中的客戶端數(shù)量為多個,且多個客戶端在接收接入服務(wù)器發(fā)送的推送消息之前,都需要從路由服務(wù)器獲取接入服務(wù)器的路由信息,所以路由服務(wù)器可以接收到多個客戶端發(fā)送的客戶端信息。步驟S220,確定所述客戶端信息符合的接入條件。接入條件用于確定出符合要求的客戶端,以便為客戶端指定接入服務(wù)器。預(yù)先設(shè)置接入條件,并為接入條件設(shè)置對應(yīng)的路由信息。該路由信息與接入服務(wù)器相對應(yīng)。路由信息包括但不限于:接入服務(wù)器的IP地址、端口號、域名地址和MAC(MediaAccessControl,媒體訪問控制)地址。為了使接入服務(wù)器發(fā)送的推送消息更有針對性,可以根據(jù)接入服務(wù)器的推送消息設(shè)置接入條件,進(jìn)而可以使與該推送消息相關(guān)的一類客戶端與該接入服務(wù)器建立長連接。例如:針對用于推送廣州天氣預(yù)報的接入服務(wù)器而言,可以使廣州地區(qū)的客戶端與該接入服務(wù)器建立長連接,這時可以設(shè)置接入條件為廣州地區(qū)。又如:針對用于推送女性健康信息的接入服務(wù)器而言,可以使用戶為女性的客戶端與該接入服務(wù)器建立長連接,這時可以設(shè)置接入條件為女性。將客戶端信息和預(yù)設(shè)的接入條件進(jìn)行匹配,確定客戶端信息符合的接入條件,由于接入條件與接入服務(wù)器的路由信息相對應(yīng),進(jìn)而可以找到客戶端應(yīng)當(dāng)接入的接入服務(wù)器。步驟S230,將所述接入條件對應(yīng)的路由信息返回給所述客戶端,以便所述客戶端和所述路由信息對應(yīng)的接入服務(wù)器建立用于消息推送的長連接??蛻舳嗽诮邮盏铰酚煞?wù)器返回的路由信息之后,根據(jù)該路由信息與對應(yīng)的接入服務(wù)器建立長連接,并基于該長連接接收該接入服務(wù)器發(fā)送的推送消息。本發(fā)明通過在路由服務(wù)器自行配置策略組(接入條件)的方式,實現(xiàn)了對推送路由列表的過濾,采用此種方式后,利用動態(tài)可配置的策略組,控制客戶端和選定的接入服務(wù)器建立連接,使客戶端接收更有針對性的推送信息。實施例三本實施例提供一個較為具體的實施例。圖3是根據(jù)本發(fā)明第三實施例的消息推送方法的流程圖。步驟S310,預(yù)先設(shè)置多個接入條件,并為每個所述接入條件設(shè)置對應(yīng)的路由信息。在本實施例中,接入條件對應(yīng)的路由信息為接入服務(wù)器的路由地址。步驟S320,為所述多個接入條件設(shè)置執(zhí)行順序。在確定客戶端信息符合的接入條件時,需要按照執(zhí)行順序依次執(zhí)行,確定客戶端信息符合的接入條件。步驟S330,接收客戶端發(fā)送的客戶端信息。步驟S340,按照所述多個接入條件的執(zhí)行順序,將所述客戶端信息順次與每個所述接入條件進(jìn)行匹配,確定所述客戶端信息第一個符合的接入條件。例如:預(yù)設(shè)設(shè)置了10個接入條件,按照該10個接入條件的執(zhí)行順序,將客戶端信息先和第一個接入條件進(jìn)行匹配,在不符合第一個接入條件的情況,將客戶端信息和第二個接入條件進(jìn)行匹配,以此類推,直到客戶端信息符合其中一個接入條件為止,客戶端信息符合的該接入條件即是客戶端信息第一個符合的接入條件。如果多個接入條件中沒有客戶端信息符合的接入條件,則結(jié)束流程。步驟S350,將所述客戶端信息第一個符合的接入條件對應(yīng)的路由信息返回給所述客戶端。例如:多個接入條件的設(shè)置參照表1所示,但是不限于表1所述的內(nèi)容。接入條件名稱執(zhí)行順序接入條件路由地址默認(rèn)組3無路由地址A策略組12舊版本、福州地區(qū)路由地址B策略組21新版本、福州地區(qū)路由地址C表1路由地址A對應(yīng)的接入服務(wù)器可以向接入的客戶端發(fā)送全國各地的天氣預(yù)報。路由地址B對應(yīng)的接入服務(wù)器可以向舊版本的客戶端發(fā)送福州地區(qū)的天氣預(yù)報。路由地址C對應(yīng)的接入服務(wù)器可以向新版本的客戶端發(fā)送福州地區(qū)的天氣預(yù)報。接收客戶端發(fā)送的客戶端信息,該客戶端信息包括版本號和客戶端的IP地址。例如:V1.0為舊版本號,V1.1為新版本號。根據(jù)客戶端的IP地址可以分析出客戶端是否處于福州地區(qū)。在確定客戶端信息符合的接入條件時,按照策略組2、策略組1和默認(rèn)組的執(zhí)行順序,順次將客戶端信息與每個接入條件進(jìn)行匹配。根據(jù)表1,先將客戶端信息和策略組2進(jìn)行匹配,確定客戶端信息是否符合策略組2的接入條件,如果符合策略組2的接入條件,則將路由地址C返回給客戶端,如果不符合,再將客戶端信息和策略組1進(jìn)行匹配,確定客戶端信息是否符合策略組1的接入條件,如果符合策略組1的接入條件,則將路由地址B返回給客戶端,如果不符合,再將客戶端信息和默認(rèn)組進(jìn)行匹配,確定客戶端信息是否符合默認(rèn)組的接入條件,如果符合默認(rèn)組的接入條件,則將路由地址A返回給客戶端,如果不符合,則不返回路由地址給客戶端。在本例中,由于默認(rèn)組沒有設(shè)置接入條件,認(rèn)為客戶端信息符合默認(rèn)組的接入條件。比如:路由服務(wù)器分析出客戶端信息包括舊版本號V1.0和福州地區(qū),那么先將客戶端信息和策略組2匹配,不符合策略組2的接入條件,再講客戶端信息和策略組1匹配,符合策略組1的接入條件,將路由地址B返回給客戶端;這樣,客戶端在接收到路由服務(wù)器返回的路由地址B之后,就可以根據(jù)該路由地址B和對應(yīng)的接入服務(wù)器建立長連接,接收該接入服務(wù)器發(fā)送的推送消息。實施例四本實施例提供另一個較為具體的實施例。圖4是根據(jù)本發(fā)明第四實施例的消息推送方法的流程圖。步驟S410,預(yù)先設(shè)置優(yōu)先級不同的多個接入條件,并為每個所述接入條件設(shè)置對應(yīng)的路由信息。步驟S420,接收客戶端發(fā)送的客戶端信息。步驟S430,將客戶端信息和多個接入條件分別進(jìn)行匹配,確定客戶端信息符合的接入條件。步驟S440,判斷客戶端信息符合的接入條件是否為多個;如果是,則執(zhí)行步驟S450;如果否,則執(zhí)行步驟S460。步驟S450,將優(yōu)先級最高的接入條件對應(yīng)的路由信息返回給客戶端。也就是說,如果所述客戶端信息符合多個接入條件,則將優(yōu)先級最高的接入條件對應(yīng)的路由信息返回給所述客戶端。步驟S460,將客戶端信息符合的接入條件返回給客戶端。例如:本實施例接入條件的設(shè)置如表2所示,但不限于表2所述的內(nèi)容。接入條件名稱優(yōu)先級接入條件路由地址默認(rèn)組0無路由地址A策略組11福州地區(qū)路由地址B策略組22福州地區(qū),女性用戶路由地址C表2接收客戶端發(fā)送的客戶端信息,該客戶端信息包括:用戶性別和IP地址。用戶性別為女,并且根據(jù)IP地址可以確定客戶端所在的地區(qū)為福州地區(qū)。在確定客戶端信息符合的接入條件時,根據(jù)用戶性別為女,所在地區(qū)為福州地區(qū),可以確定客戶端信息符合默認(rèn)組、策略組1和策略組2的接入條件。這時,可以查詢默認(rèn)組、策略組1和策略組2的優(yōu)先級,根據(jù)表2可知,默認(rèn)組、策略組1和策略組2的優(yōu)先級逐漸升高,所以客戶端信息符合的最高優(yōu)先級的接入條件為策略組2,那么可以將路由地址C返回給客戶端。實施例五在本實施例中,預(yù)先設(shè)置的多個接入條件包括:一個默認(rèn)接入條件和一個或多個策略接入條件;默認(rèn)接入條件的優(yōu)先級低于一個或多個策略接入條件的優(yōu)先級。也就是說,默認(rèn)接入條件的優(yōu)先級最低,例如表2中的默認(rèn)組。默認(rèn)接入條件,用于在無需為客戶端過濾接入服務(wù)器的情況下,使客戶端接入指定的接入服務(wù)器。該接入服務(wù)器為默認(rèn)的接入服務(wù)器。默認(rèn)接入條件可以為空。策略接入條件,用于根據(jù)客戶端符合的接入條件,為客戶端選擇接入服務(wù)器。換言之,為客戶端過濾出符合接入條件的接入服務(wù)器。具體的,默認(rèn)接入條件和策略接入條件的設(shè)置可以在路由服務(wù)器的后臺管理界面進(jìn)行。根據(jù)客戶端類型,設(shè)置默認(rèn)接入條件,使客戶端可以在沒有接入要求的情況下,接入默認(rèn)的接入服務(wù)器。例如:天氣預(yù)報客戶端的默認(rèn)接入條件為天氣類客戶端,默認(rèn)的接入服務(wù)器為國家氣象局的服務(wù)器,默認(rèn)接入條件對應(yīng)的路由信息為國家氣象局的服務(wù)器的路由信息。根據(jù)接入服務(wù)器的推送信息,設(shè)置策略接入條件,使連接該接入服務(wù)器的客戶端接收更有針對性的推送信息。例如:天氣預(yù)報客戶端的所在地為福州地區(qū),那么策略接入條件可以為福州地區(qū)的天氣類客戶端,該策略接入條件對應(yīng)的路由信息可以是福州地區(qū)氣象局的路由信息。實施例六本實施例提供一種消息推送裝置。圖5是根據(jù)本發(fā)明第六實施例的消息推送裝置的結(jié)構(gòu)圖。本實施例的所述裝置被設(shè)置在路由服務(wù)器側(cè)。該消息推送裝置,包括:接收模塊510,用于接收客戶端發(fā)送的客戶端信息。確定模塊520,用于確定所述客戶端信息符合的接入條件。發(fā)送模塊530,用于將所述接入條件對應(yīng)的路由信息返回給客戶端,以便所述客戶端和所述路由信息對應(yīng)的接入服務(wù)器建立用于消息推送的長連接。在一個實施例中,接收模塊510,用于接收客戶端發(fā)送的路由獲取請求;在所述路由獲取請求中攜帶所述客戶端的客戶端信息。在另一實施例中,確定模塊520,用于預(yù)先設(shè)置多個接入條件,為每個所述接入條件設(shè)置對應(yīng)的路由信息,并且為所述多個接入條件設(shè)置執(zhí)行順序;按照所述多個接入條件的執(zhí)行順序,將所述客戶端信息順次與每個所述接入條件進(jìn)行匹配,確定所述客戶端信息第一個符合的接入條件。發(fā)送模塊530,用于將所述客戶端信息第一個符合的接入條件對應(yīng)的路由信息返回給所述客戶端。在又一實施例中,確定模塊520,用于預(yù)先設(shè)置優(yōu)先級不同的多個接入條件,并為每個所述接入條件設(shè)置對應(yīng)的路由信息;發(fā)送模塊530,用于在所述客戶端信息符合多個接入條件的情況下,將優(yōu)先級最高的接入條件對應(yīng)的路由信息返回給所述客戶端。進(jìn)一步地,所述多個接入條件包括:一個默認(rèn)接入條件和一個或多個策略接入條件;所述默認(rèn)接入條件的優(yōu)先級低于所述一個或多個策略接入條件的優(yōu)先級。本實施例所述的裝置的功能已經(jīng)在上述方法實施例中進(jìn)行了描述,故本實施例的描述中未詳盡之處,可以參見前述實施例中的相關(guān)說明,在此不做贅述。需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),計算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的
技術(shù)領(lǐng)域:
,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。當(dāng)前第1頁1 2 3