本發明涉及網絡通信技術領域,尤其涉及一種消息推送方法和裝置。
背景技術:
隨著網絡通信技術的不斷發展,即時消息作為常用的網絡通信方式。相關技術中,即時消息主要有兩類發送方式:推送方式和拉取方式,其中,推送方式是發送端發送待推送消息后,由服務器將待推送消息即時推送給群組內的所有終端用戶;拉取方式是發送端發送待推送消息后,將待推送消息存儲在服務器的消息存儲裝置中,由群組內的終端用戶定時來拉取待推送消息。
這種方式下,推送方式支持的可同時在線人數受到限制,接收待推送消息的組群人數在萬人以下;拉取方式發送的待推送消息的即時性較低,且當群組內無人發言時,會造成大量的無效訪問,浪費用戶的流量。
技術實現要素:
本發明旨在至少在一定程度上解決相關技術中的技術問題之一。
為此,本發明的一個目的在于提出一種消息推送方法,能夠有效提升待推送消息推送的時效性,且避免群組內終端個數的限制,提升用戶體驗。
本發明的另一個目的在于提出一種消息推送裝置。
為達到上述目的,本發明第一方面實施例提出的消息推送方法,包括:接收待推送消息,所述待推送消息包括:消息體和目標群組標識;從信息庫中讀取與每個目標群組標識對應的終端標識,并根據所述對應的終端標識讀取每個終端標識的預設信息;根據所述預設信息將所述待推送消息并行推送至所述每個終端標識對應的終端。
本發明第一方面實施例提出的消息推送方法,通過從信息庫中讀取與每個目標群組標識對應的終端標識,并根據對應的終端標識讀取每個終端標識的預設信息,根據預設信息將待推送消息并行推送至每個終端標識對應的終端,能夠有效提升待推送消息推送的時效性,且避免群組內終端個數的限制,提升用戶體驗。
為達到上述目的,本發明第二方面實施例提出的裝置,包括:第一接收模塊,用于接收待推送消息,所述待推送消息包括:消息體和目標群組標識;讀取模塊,用于從信息庫中讀取與每個目標群組標識對應的終端標識,并根據所述對應的終端標識讀取每個終端標識的預設信息;推送模塊,用于根據所述預設信息將所述待推送消息并行推送至所述每個終端標識對應的終端。
本發明第二方面實施例提出的消息推送裝置,通過從信息庫中讀取與每個目標群組標識對應的終端標識,并根據對應的終端標識讀取每個終端標識的預設信息,根據預設信息將待推送消息并行推送至每個終端標識對應的終端,能夠有效提升待推送消息推送的時效性,且避免群組內終端個數的限制,提升用戶體驗。
本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
附圖說明
本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1是本發明一實施例提出的消息推送方法的流程示意圖;
圖2是本發明另一實施例提出的消息推送方法的流程示意圖;
圖3是本發明實施例中群組標識和終端標識的映射關系示意圖;
圖4是本發明另一實施例提出的消息推送方法的流程示意圖;
圖5是本發明另一實施例提出的消息推送方法的流程示意圖;
圖6是本發明一實施例提出的消息推送裝置的結構示意圖;
圖7是本發明另一實施例提出的消息推送裝置的結構示意圖。
具體實施方式
下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發明,而不能理解為對本發明的限制。相反,本發明的實施例包括落入所附加權利要求書的精神和內涵范圍內的所有變化、修改和等同物。
圖1是本發明一實施例提出的消息推送方法的流程示意圖。以該消息推送方法被配置為消息推送裝置中來舉例說明。該消息推送方法可以應用于服務器。
參見圖1,以該消息推送方法包括:
S11:接收待推送消息,待推送消息包括:消息體和目標群組標識。
在本發明的實施例中,目標群組標識為至少一個。
在本發明的實施例中,待推送消息可以為發送端需要對其進行推送的消息。
在本發明的實施例中,消息體包括但不限于發送端標識(例如,發送端ID)、消息內容,以及目標群組標識(例如,目標群組ID)等信息。
可選地,發送端發送待推送消息至服務器,服務器接收發送端發送的待推送消息,以根據待推送消息中的目標群組標識從信息庫中讀取與其對應的終端標識,從而根據終端標識的預設信息將待推送消息并行推送至每個終端標識對應的終端。
S12:從信息庫中讀取與每個目標群組標識對應的終端標識,并根據對應的終端標識讀取每個終端標識的預設信息。
在本發明的實施例中,與每個目標群組標識對應的終端標識為至少一個。
在本發明的實施例中,信息庫可以為預先建立的。
在本發明的實施例中,預設信息為長連接信息,信息庫中包括:長連接信息庫、群組標識和終端標識的映射關系。
在本發明的實施例中,可以根據群組標識和終端標識的映射關系獲取每個目標群組標識對應的分區標識,其中,目標群組標識為至少一個,對應的分區標識為至少一個;根據群組標識和終端標識的映射關系獲取每個分區標識對應的終端標識,其中,對應的終端標識為至少一個;以及根據對應的終端標識從長連接信息庫中讀取每個終端標識的預設信息。
可選地,一些實施例中,參見圖2,通過以下步驟建立信息庫:
S21:接收終端發送的請求消息,其中,請求消息包括:終端標識、目標群組標識,以及終端的預設信息。
可選地,接收終端發送的請求消息,其中,請求消息包括:終端標識(例如,終端ID)、目標群組標識(例如,目標群組ID),以及終端的預設信息(例如,終端的長連接信息),以根據請求消息中的終端標識判斷終端的預設信息是否在長連接信息庫中。
S22:根據終端標識判斷終端的預設信息是否在長連接信息庫中,若是,則執行S24,若否,則執行S23。
可選地,根據終端標識判斷終端的預設信息是否在長連接信息庫中,例如,根據終端ID判斷終端的長連接信息是否已經存在于長連接信息庫中,以觸發后續步驟。
S23:將終端的預設信息添加至長連接信息庫中。
可選地,在終端的預設信息未在長連接信息庫中時,將終端的預設信息添加至長連接信息庫中,即,將終端的長連接信息添加至長連接信息庫中,且終端標識作為存儲信息的唯一標識,即,可以根據終端標識來判斷終端的預設信息是否在長連接信息庫中。
S24:根據預設規則對終端標識進行分區,并獲取分區標識。
在本發明的實施例中,預設規則根據以下任一方式確定:根據哈希算法分區的方式;根據終端內存分區的方式;根據終端所在的區域分區的方式。
可選地,在終端的預設信息在長連接信息庫中,或者,已將終端的預設信息添加至長連接信息庫中時,根據預設規則對終端標識進行分區,并獲取分區標識(例如,分區ID),以根據終端標識、分區標識、目標群組標識,以及終端的預設信息生成群組標識和終端標識的映射關系。
S25:根據終端標識、分區標識、目標群組標識,以及終端的預設信息生成群組標識和終端標識的映射關系。
可選地,根據終端標識、分區標識、目標群組標識,以及終端的預設信息生成群組標識和終端標識的映射關系,便于讀取與每個目標群組標識對應的終端標識,縮短對終端標識進行識別所用的時間。
作為一種示例,參見圖3,圖3為本發明實施例中群組標識和終端標識的映射關系示意圖,根節點為群組標識,群組標識下一層包含分區標識,分區標識下一層是終端標識,每個終端標識對應唯一的終端的預設信息,即終端的長連接信息。
S26:將群組標識和終端標識的映射關系保存在信息庫中。
可選地,將群組標識和終端標識的映射關系保存在信息庫中,以便服務器從信息庫中讀取與每個目標群組標識對應的終端標識。
本實施例中,通過根據預設規則對終端標識進行分區,并獲取分區標識,根據終端標識、分區標識、目標群組標識,以及終端的預設信息生成群組標識和終端標識的映射關系,將群組標識和終端標識的映射關系保存在信息庫中,能夠便于從信息庫中讀取與每個目標群組標識對應的終端標識,縮短對終端標識進行識別所用的時間,有效提升待推送消息推送的時效性。
可選地,一些實施例中,參見圖4,步驟S12具體包括:
S41:根據群組標識和終端標識的映射關系獲取每個目標群組標識對應的分區標識,其中,目標群組標識為至少一個,對應的分區標識為至少一個。
例如,參見圖3,可以根據群組標識和終端標識的映射關系獲取每個目標群組標識對應的分區標識,由圖3可看出,每個目標群組標識對應的分區標識為至少一個。
S42:根據群組標識和終端標識的映射關系獲取每個分區標識對應的終端標識,其中,對應的終端標識為至少一個。
例如,參見圖3,可以根據群組標識和終端標識的映射關系獲取每個分區標識對應的終端標識,由圖3可看出,每個分區標識對應的終端標識為至少一個。
S43:根據對應的終端標識從長連接信息庫中讀取每個終端標識的預設信息。
例如,參見圖3,每個終端標識對應唯一的預設信息,可以根據對應的終端標識從長連接信息庫中讀取每個終端標識的預設信息,以根據預設信息將待推送消息并行推送至每個終端標識對應的終端。
本實施例中,通過根據群組標識和終端標識的映射關系獲取每個分區標識對應的終端標識,根據對應的終端標識從長連接信息庫中讀取每個終端標識的預設信息,能夠根據預設信息將待推送消息并行推送至每個終端標識對應的終端,有效提升待推送消息推送的時效性,且避免群組終端個數的限制。
S13:根據預設信息將待推送消息并行推送至每個終端標識對應的終端。
可選地,參見圖3,由圖3可知,由于每個終端標識對應唯一的預設信息,服務器可以根據每個終端標識的預設信息將待推送消息并行推送至每個終端標識對應的終端。
可選地,一些實施例中,參見圖5,步驟S13具體包括:
S51:對每個分區標識建立推送任務,其中,推送任務與對應的分區標識的數量相同,且,至少一個的推送任務之間并行執行。
可選地,服務器根據群組標識獲取群組內所有的分區標識,參見圖3,根據分區標識的數量建立并行推送任務,推送任務負責根據分區標識獲取該分區下的所有終端的預設信息,以根據預設信息將待推送消息并行推送至每個終端標識對應的終端。
S52:并行執行對應的分區標識中每個分區標識的推送任務,以根據預設信息將待推送消息并行推送至每個終端標識對應的終端。
可選地,并行執行群組標識對應的分區標識中每個分區標識的推送任務,以根據預設信息將待推送消息并行推送至每個終端標識對應的終端,能夠有效提升待推送消息推送的時效性,且避免群組內終端個數的限制。
本實施例中,通過對每個分區標識建立推送任務,并行執行對應的分區標識中每個分區標識的推送任務,以根據預設信息將待推送消息并行推送至每個終端標識對應的終端,能夠有效提升待推送消息推送的時效性,且避免群組內終端個數的限制,提升用戶體驗。
本實施例中,通過從信息庫中讀取與每個目標群組標識對應的終端標識,并根據對應的終端標識讀取每個終端標識的預設信息,根據預設信息將待推送消息并行推送至每個終端標識對應的終端,能夠有效提升待推送消息推送的時效性,且避免群組內終端個數的限制,提升用戶體驗。
圖6是本發明一實施例提出的消息推送裝置的結構示意圖。該消息推送裝置60可以通過軟件、硬件或者兩者的結合實現,該消息推送裝置60可以包括:第一接收模塊601、讀取模塊602,以及推送模塊603。其中,
第一接收模塊601,用于接收待推送消息,待推送消息包括:消息體和目標群組標識。
讀取模塊602,用于從信息庫中讀取與每個目標群組標識對應的終端標識,并根據對應的終端標識讀取每個終端標識的預設信息。
可選地,預設信息為長連接信息,信息庫中包括:長連接信息庫、群組標識和終端標識的映射關系。
推送模塊603,用于根據預設信息將待推送消息并行推送至每個終端標識對應的終端。
一些實施例中,參見圖7,該消息推送裝置60還可以包括:
可選地,讀取模塊602包括:
第一獲取子模塊6021,用于根據群組標識和終端標識的映射關系獲取每個目標群組標識對應的分區標識,其中,目標群組標識為至少一個,對應的分區標識為至少一個。
第二獲取子模塊6022,用于根據群組標識和終端標識的映射關系獲取每個分區標識對應的終端標識,其中,對應的終端標識為至少一個。
讀取子模塊6023,用于根據對應的終端標識從長連接信息庫中讀取每個終端標識的預設信息。
可選地,推送模塊603包括:
建立子模塊6031,用于對每個分區標識建立推送任務,其中,推送任務與對應的分區標識的數量相同,且,至少一個的推送任務之間并行執行。
執行子模塊6032,用于并行執行對應的分區標識中每個分區標識的推送任務,以根據預設信息將待推送消息并行推送至每個終端標識對應的終端。
可選地,通過以下模塊建立信息庫:
第二接收模塊604,用于接收終端發送的請求消息,其中,請求消息包括:終端標識、目標群組標識,以及終端的預設信息。
判斷模塊605,用于根據終端標識判斷終端的預設信息是否在長連接信息庫中。
添加模塊606,用于在終端的預設信息不在長連接信息庫中時,將終端的預設信息添加至長連接信息庫中。
分區模塊607,用于在終端的預設信息在長連接信息庫中,或者,已將終端的預設信息添加至長連接信息庫中時,根據預設規則對終端標識進行分區,并獲取分區標識。
可選地,預設規則根據以下任一方式確定:根據哈希算法分區的方式;根據終端內存分區的方式;根據終端所在的區域分區的方式。
生成模塊608,用于根據終端標識、分區標識、目標群組標識,以及終端的預設信息生成群組標識和終端標識的映射關系。
保存模塊609,用于將群組標識和終端標識的映射關系保存在信息庫中。
需要說明的是,前述圖1-圖5實施例中對消息推送方法實施例的解釋說明也適用于該實施例的消息推送裝置60,其實現原理類似,此處不再贅述。
本實施例中,通過從信息庫中讀取與每個目標群組標識對應的終端標識,并根據對應的終端標識讀取每個終端標識的預設信息,根據預設信息將待推送消息并行推送至每個終端標識對應的終端,能夠有效提升待推送消息推送的時效性,且避免群組內終端個數的限制,提升用戶體驗。
需要說明的是,在本發明的描述中,術語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。此外,在本發明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,并且本發明的優選實施方式的范圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本發明的實施例所屬技術領域的技術人員所理解。
應當理解,本發明的各部分可以用硬件、軟件、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟件或固件來實現。例如,如果用硬件來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用于對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現場可編程門陣列(FPGA)等。
本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
此外,在本發明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。所述集成的模塊如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
盡管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在本發明的范圍內可以對上述實施例進行變化、修改、替換和變型。