欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

消息推送方法、系統(tǒng)及推送服務(wù)器設(shè)備的制作方法

文檔序號(hào):7999027閱讀:232來源:國(guó)知局
消息推送方法、系統(tǒng)及推送服務(wù)器設(shè)備的制作方法
【專利摘要】本發(fā)明公開了一種消息推送方法、系統(tǒng)及推送服務(wù)器設(shè)備,屬于通信【技術(shù)領(lǐng)域】。所述方法包括:推送服務(wù)器設(shè)備接收應(yīng)用服務(wù)器發(fā)送的消息;所述消息中包括所述應(yīng)用的標(biāo)識(shí);所述推送服務(wù)器設(shè)備根據(jù)所述應(yīng)用的標(biāo)識(shí),確定所述應(yīng)用對(duì)應(yīng)的連接;所述連接為移動(dòng)終端與所述推送服務(wù)器之間基于用戶和所述應(yīng)用的連接;所述推送服務(wù)器設(shè)備通過各所述連接,向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消息,以供所述應(yīng)用的客戶端上登錄的所述用戶接收所述消息。本發(fā)明通過采用上述技術(shù)方案。實(shí)現(xiàn)不用基于平臺(tái)的類型進(jìn)行消息推送,豐富了消息推送的方式,且使用靈活方便。
【專利說明】消息推送方法、系統(tǒng)及推送服務(wù)器設(shè)備

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別涉及一種消息推送方法、系統(tǒng)及推送服務(wù)器設(shè)備。

【背景技術(shù)】
[0002] 隨著移動(dòng)通訊技術(shù)的發(fā)展,出現(xiàn)一種以推送(Push)方式傳輸消息的消息傳輸技 術(shù)。消息推送技術(shù)主要是利用Push技術(shù)主動(dòng)地、有目的地向用戶推送消息。
[0003] 移動(dòng)通信技術(shù)中的兩大職能平臺(tái)為蘋果公司的蘋果操作系統(tǒng)(Iphone Oration System ;I0S)平臺(tái)和谷歌公司的安卓(Android)平臺(tái)。這兩大平臺(tái)都有自己的消息Push 服務(wù)。蘋果的I0S平臺(tái)的消息Push服務(wù)為蘋果推送通知服務(wù)(Apple Push Notification Service)。谷歌的 android 平臺(tái)的消息 Push 服務(wù)包括 Cloud to Device Messaging (簡(jiǎn)稱C2DM)服務(wù);C2DM服務(wù)允許第三方開發(fā)者開發(fā)相關(guān)的應(yīng)用來推送少量數(shù)據(jù)消息 (1024bytes)到用戶的移動(dòng)終端上的。谷歌的Android平臺(tái)的消息Push服務(wù)還包括谷歌的 云推送消息服務(wù)(Google Cloud Messaging ;簡(jiǎn)稱GCM)服務(wù),該GCM服務(wù)是之前的C2DM服 務(wù)的升級(jí)。且I0S平臺(tái)和Android平臺(tái)的Push服務(wù)器都設(shè)置在美國(guó),當(dāng)向美國(guó)之外的其他 國(guó)家區(qū)域的用戶推送消息的時(shí)候均需要跨越跨國(guó)網(wǎng)絡(luò)來實(shí)現(xiàn)。
[0004] 在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:現(xiàn)有的I0S平 臺(tái)和Android平臺(tái)的Push推送服務(wù)器必須基于平臺(tái)的類型進(jìn)行消息推送服務(wù),導(dǎo)致消息推 送方式較為單一,使用不靈活。


【發(fā)明內(nèi)容】

[0005] 為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種消息推送方法、系統(tǒng)及推送 服務(wù)器設(shè)備。所述技術(shù)方案如下:
[0006] -方面,提供了一種消息推送方法,所述方法包括:
[0007] 推送服務(wù)器設(shè)備接收應(yīng)用服務(wù)器發(fā)送的消息;所述消息中包括所述應(yīng)用的標(biāo)識(shí);
[0008] 所述推送服務(wù)器設(shè)備根據(jù)所述應(yīng)用的標(biāo)識(shí),確定所述應(yīng)用對(duì)應(yīng)的連接;所述連接 為移動(dòng)終端與所述推送服務(wù)器之間基于用戶和所述應(yīng)用的連接;
[0009] 所述推送服務(wù)器設(shè)備通過各所述連接,向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述 消息,以供所述應(yīng)用的客戶端上登錄的所述用戶接收所述消息。
[0010] 可選地,如上所述的消息推送方法中,所述推送服務(wù)器設(shè)備接收應(yīng)用服務(wù)器發(fā)送 的消息之后,所述推送服務(wù)器設(shè)備根據(jù)所述應(yīng)用的標(biāo)識(shí),獲取所述應(yīng)用對(duì)應(yīng)的連接之前,還 包括:
[0011] 所述推送服務(wù)器設(shè)備判斷并確定存在推送所述消息的連接。
[0012] 可選地,如上所述的消息推送方法中,所述推送服務(wù)器設(shè)備判斷并確定存在推送 所述消息的連接,包括:
[0013] 所述推送服務(wù)器設(shè)備判斷全局哈希映射表中是否存在包括所述應(yīng)用的標(biāo)識(shí)的映 射關(guān)系;所述映射關(guān)系為所述用戶的標(biāo)識(shí)、所述應(yīng)用的標(biāo)識(shí)和所述移動(dòng)終端的標(biāo)識(shí)的對(duì)應(yīng) 關(guān)系;
[0014] 當(dāng)所述全局哈希映射表中包括所述應(yīng)用的標(biāo)識(shí)的映射關(guān)系,所述推送服務(wù)器設(shè)備 確定存在推送所述消息的連接,否則,所述推送服務(wù)器設(shè)備確定不存在推送所述消息的連 接。
[0015] 可選地,如上所述的消息推送方法中,還包括:
[0016] 當(dāng)所述推送服務(wù)器設(shè)備確定不存在推送所述消息的連接時(shí),所述推送服務(wù)器設(shè)備 將所述消息存儲(chǔ)在數(shù)據(jù)中心設(shè)備中;
[0017] 所述方法進(jìn)一步還包括:
[0018] 當(dāng)所述推送服務(wù)器設(shè)備確定存在推送所述消息的連接時(shí),所述推送服務(wù)器設(shè)備從 所述數(shù)據(jù)中心設(shè)備中提取所述消息;
[0019] 所述推送服務(wù)器設(shè)備通過所述連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消 息,以供所述應(yīng)用的客戶端上登錄的所述用戶接收所述消息。
[0020] 可選地,如上所述的消息推送方法中,所述推送服務(wù)器設(shè)備向所述移動(dòng)終端推送 消息,包括:
[0021] 所述推送服務(wù)器設(shè)備通過所述連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消 息,包括:
[0022] 所述推送服務(wù)器設(shè)備的工作線程,通過所述連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端 推送所述消息。
[0023] 可選地,如上所述的消息推送方法中,所述推送服務(wù)器設(shè)備的工作線程,通過所述 連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消息之前,還包括:
[0024] 所述推送服務(wù)器設(shè)備的接入線程監(jiān)聽并接收所述移動(dòng)終端發(fā)起的基于所述用戶 和所述應(yīng)用的連接,并將所述連接壓入所述推送服務(wù)器設(shè)備的工作線程的連接隊(duì)列中;
[0025] 所述推送服務(wù)器設(shè)備的工作線程從所述連接隊(duì)列中獲取所述連接,并將所述連接 存入所述全局哈希映射表中。
[0026] 可選地,如上所述的消息推送方法中,所述推送服務(wù)器設(shè)備的工作線程從所述連 接隊(duì)列中獲取所述連接之后,還包括:
[0027] 所述推送服務(wù)器設(shè)備的工作線程將所述連接存入所述工作線程的鏈接表中;
[0028] 進(jìn)一步地,所述方法還包括:
[0029] 所述推送服務(wù)器設(shè)備的工作線程定期輪詢所述鏈接表中的所述連接;
[0030] 所述推送服務(wù)器設(shè)備的工作線程檢查所述連接是否過期或者所述連接是否正 常;
[0031] 當(dāng)所述連接過期或者所述連接不正常,所述推送服務(wù)器設(shè)備的工作線程刪除所述 連接;
[0032] 所述推送服務(wù)器設(shè)備的工作線程刪除所述全局哈希映射表中所述連接對(duì)應(yīng)的映 身寸關(guān)系。
[0033] 可選地,如上所述的消息推送方法中,還包括:
[0034] 所述推送服務(wù)器設(shè)備的主線程預(yù)先創(chuàng)建所述推送服務(wù)器設(shè)備的工作線程和所述 推送服務(wù)器設(shè)備的接入線程。
[0035] 另一方面,提供了 一種推送服務(wù)器設(shè)備,所述設(shè)備包括:
[0036] 接收模塊,用于接收應(yīng)用服務(wù)器發(fā)送的消息;所述消息中包括所述應(yīng)用的標(biāo)識(shí);
[0037] 處理模塊,用于根據(jù)所述應(yīng)用的標(biāo)識(shí),確定所述應(yīng)用對(duì)應(yīng)的連接;所述連接為移動(dòng) 終端與所述推送服務(wù)器之間基于用戶和所述應(yīng)用的連接;所述處理模塊,還用于通過各所 述連接,向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消息,以供所述應(yīng)用的客戶端上登錄的 所述用戶接收所述消息。
[0038] 可選地,如上推送服務(wù)器設(shè)備中,所述處理模塊,還用于在所述接收模塊接收應(yīng)用 服務(wù)器發(fā)送的消息之后,所述處理模塊根據(jù)所述應(yīng)用的標(biāo)識(shí),獲取所述應(yīng)用對(duì)應(yīng)的連接之 前,判斷并確定存在推送所述消息的連接。
[0039] 可選地,如上推送服務(wù)器設(shè)備中,所述處理模塊,所述處理模塊,具體用于判斷全 局哈希映射表中是否存在包括所述應(yīng)用的標(biāo)識(shí)的映射關(guān)系;所述映射關(guān)系為所述用戶的標(biāo) 識(shí)、所述應(yīng)用的標(biāo)識(shí)和所述移動(dòng)終端的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;當(dāng)所述全局哈希映射表中包括所 述應(yīng)用的標(biāo)識(shí)的映射關(guān)系,確定存在推送所述消息的連接,否則,確定不存在推送所述消息 的連接。
[0040] 可選地,如上推送服務(wù)器設(shè)備中,所述處理模塊,還用于當(dāng)確定不存在推送所述消 息的連接時(shí),將所述消息存儲(chǔ)在數(shù)據(jù)中心設(shè)備中;
[0041] 所述處理模塊,還用于當(dāng)所述推送服務(wù)器設(shè)備確定存在推送所述消息的連接時(shí), 從所述數(shù)據(jù)中心設(shè)備中提取所述消息,并通過所述連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端推 送所述消息,以供所述應(yīng)用的客戶端上登錄的所述用戶接收所述消息。
[0042] 可選地,如上推送服務(wù)器設(shè)備中,所述處理模塊,包括工作線程子模塊和接入線程 子模塊;
[0043] 所述工作線程子模塊,用于通過所述連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所 述消息;
[0044] 所述接入線程子模塊,用于監(jiān)聽并接收所述移動(dòng)終端發(fā)起的基于所述用戶和所述 應(yīng)用的連接,并將所述連接壓入所述工作線程子模塊的連接隊(duì)列中;
[0045] 所述工作線程子模塊,還用于從所述連接隊(duì)列中獲取所述連接,并將所述連接存 入所述全局哈希映射表中。
[0046] 可選地,如上推送服務(wù)器設(shè)備中,所述工作線程子模塊,還用于將所述連接存入所 述工作線程子模塊的鏈接表中;
[0047] 進(jìn)一步地,所述工作線程子模塊,還用于定期輪詢所述鏈接表中的所述連接;并檢 查所述連接是否過期或者所述連接是否正常;當(dāng)所述連接過期或者所述連接不正常,刪除 所述連接;
[0048] 所述工作線程子模塊,還用于刪除所述全局哈希映射表中所述連接對(duì)應(yīng)的映射關(guān) 系。
[0049] 可選地,如上推送服務(wù)器設(shè)備中,所述處理模塊還包括:
[0050] 所述主線程子模塊,用于預(yù)先創(chuàng)建所述工作線程子模塊和所述接入線程子模塊。
[0051] 再一方面,提供一種消息推送系統(tǒng),包括應(yīng)用服務(wù)器、推送服務(wù)器設(shè)備和移動(dòng)終 端;所述推送服務(wù)器設(shè)備分別與所述應(yīng)用服務(wù)器和所述移動(dòng)終端通信連接,所述推送服務(wù) 器設(shè)備采用如上任一所述的推送服務(wù)器設(shè)備。
[0052] 本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
[0053] 推送服務(wù)器通過接收應(yīng)用服務(wù)器發(fā)送的消息,所述消息中包括所述應(yīng)用的標(biāo)識(shí); 推送服務(wù)器設(shè)備根據(jù)應(yīng)用的標(biāo)識(shí),獲取應(yīng)用對(duì)應(yīng)的連接;所述連接為移動(dòng)終端與所述推送 服務(wù)器之間基于用戶和所述應(yīng)用的連接;推送服務(wù)器設(shè)備通過各所述連接,向所述連接對(duì) 應(yīng)的所述移動(dòng)終端推送所述消息,以供所述應(yīng)用的客戶端上登錄的所述用戶接收所述消 息。通過采用本發(fā)明實(shí)施例的技術(shù)方案,不用基于平臺(tái)的類型進(jìn)行消息推送,豐富了消息推 送的方式,且使用靈活方便。且進(jìn)一步地,本發(fā)明實(shí)施例中的推送服務(wù)器可以設(shè)置在各運(yùn)營(yíng) 商的機(jī)房中,與移動(dòng)終端在同一區(qū)域范圍內(nèi),克服了現(xiàn)有技術(shù)中檔需要訪問I0S平臺(tái)的或 者Android平臺(tái)的Push服務(wù)器時(shí),均需要訪問跨國(guó)網(wǎng)絡(luò),導(dǎo)致連接不穩(wěn)定,推動(dòng)不及時(shí)等的 缺陷,因此本發(fā)明實(shí)施例的消息推送方案,通過推送服務(wù)器發(fā)送消息的連接更加穩(wěn)定,消息 推送的效率更高。
[0054] 而且現(xiàn)有的ios平臺(tái)和android兩個(gè)平臺(tái)都有自己的協(xié)議,如果ios平臺(tái)和 android平臺(tái)的手機(jī)都要用push服務(wù)的話,使用者需要開發(fā)兩套代碼,且兩個(gè)協(xié)議是不一 樣的,且"不統(tǒng)一",接入成本相對(duì)較高。本發(fā)明實(shí)施例的技術(shù)方案的通用協(xié)議可以用以任何 平臺(tái),不需要為獨(dú)立的平臺(tái)單獨(dú)開發(fā),不需要額外的開發(fā)費(fèi)用,接入成本較低。

【專利附圖】

【附圖說明】
[0055] 為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使 用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。
[0056] 圖1為本發(fā)明實(shí)施例一提供的消息推送方法的流程圖。
[0057] 圖2為本發(fā)明實(shí)施例中推送服務(wù)器的線程架構(gòu)圖。
[0058] 圖3為本發(fā)明實(shí)施例二提供給的消息推送方法的流程圖。
[0059] 圖4為本發(fā)明實(shí)施例三提供的推送服務(wù)器設(shè)備的結(jié)構(gòu)示意圖。
[0060] 圖5為實(shí)施例四提供的推送服務(wù)器設(shè)備的結(jié)構(gòu)示意圖。
[0061] 圖6為本發(fā)明實(shí)施例五提供消息推送系統(tǒng)的結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0062] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方 式作進(jìn)一步地詳細(xì)描述。
[0063] 實(shí)施例一
[0064] 圖1為本發(fā)明實(shí)施例一提供的消息推送方法的流程圖。如圖1所示,本實(shí)施例的 消息推送方法,具體可以包括如下步驟:
[0065] 100、推送服務(wù)器設(shè)備接收應(yīng)用服務(wù)器發(fā)送的消息;該消息中包括該應(yīng)用的標(biāo)識(shí);
[0066] 根據(jù)該應(yīng)用的標(biāo)識(shí),推送服務(wù)器設(shè)備可以知道該消息為哪個(gè)應(yīng)用服務(wù)器發(fā)送的, 從而可以確定該消息將要推送給使用該應(yīng)用的用戶。本發(fā)明實(shí)施例中的用戶均指的是使用 該應(yīng)用的賬戶,如QQ號(hào)碼等。本實(shí)施例的應(yīng)用的標(biāo)識(shí)為該應(yīng)用的唯一標(biāo)識(shí),為QQ農(nóng)場(chǎng)的身 份標(biāo)識(shí)碼(Identity ;ID)或者QQ空間的標(biāo)識(shí)ID等等。
[0067] 101、推送服務(wù)器設(shè)備根據(jù)應(yīng)用的標(biāo)識(shí),確定應(yīng)用對(duì)應(yīng)的連接;
[0068] 本實(shí)施例中的連接為移動(dòng)終端與推送服務(wù)器之間基于用戶和該應(yīng)用的連接。當(dāng)某 用戶通過移動(dòng)終端登錄該應(yīng)用時(shí),此時(shí)該移動(dòng)終端與推送服務(wù)器之間基于用戶和該應(yīng)用建 立連接。例如推送服務(wù)器設(shè)備可以確定一下當(dāng)前在線的該應(yīng)用對(duì)應(yīng)的所有連接或所有連接 中的多個(gè)連接。如用戶A通過移動(dòng)終端B登錄該應(yīng)用,在移動(dòng)終端B與推送服務(wù)器之間建 立的基于該用戶A和該應(yīng)用的連接;用戶C通過移動(dòng)終端D登錄該應(yīng)用,在移動(dòng)終端D與推 送服務(wù)器之間建立的基于該用戶C和該應(yīng)用的連接,等等。當(dāng)該用戶未在移動(dòng)終端上登錄 該應(yīng)用,此時(shí)連接不存在。
[0069] 102、推送服務(wù)器設(shè)備通過獲取的各連接,向每一連接對(duì)應(yīng)的移動(dòng)終端推送該消 息,以供該應(yīng)用的客戶端上登錄的該用戶接收該消息。
[0070] 推送服務(wù)器設(shè)備通過獲取的各連接均為在線連接,因此可以基于各在線連接進(jìn)行 消息推送。每一連接為移動(dòng)終端與推送服務(wù)器之間基于用戶和該應(yīng)用的連接。因此推送服 務(wù)器設(shè)備向移動(dòng)終端推送消息,這樣,可以便于該移動(dòng)終端上登錄該應(yīng)用的該用戶獲取到 推送的消息,從而實(shí)現(xiàn)消息的正確推送。
[0071] 本實(shí)施例中的推送服務(wù)器設(shè)備,與現(xiàn)有技術(shù)中的I0S平臺(tái)和Android平臺(tái)的Push 服務(wù)器不同,可以設(shè)置與移動(dòng)終端設(shè)置在同一區(qū)域,如可以該移動(dòng)終端所在的國(guó)家內(nèi)。而且 該推送服務(wù)器不限制為臺(tái)服務(wù)器,可以為一組集群服務(wù)器,部署在一個(gè)域名網(wǎng)站的下面,而 且可以對(duì)移動(dòng)、聯(lián)通、電信等不同的運(yùn)營(yíng)商有不同的機(jī)房部署。移動(dòng)終端連接推送服務(wù)器的 域名網(wǎng)站,該域名網(wǎng)站的全局負(fù)載均衡系統(tǒng)(Global Server Load Balance ;GSLB)會(huì)針對(duì) 當(dāng)前移動(dòng)終端的網(wǎng)絡(luò)類型如電信、移動(dòng)或聯(lián)通,自動(dòng)選擇對(duì)應(yīng)的機(jī)房(如電信、移動(dòng)或聯(lián)通) 的推送服務(wù)器。連接成功后,該連接一直保留。
[0072] 本實(shí)施例的消息推送方法,推送服務(wù)器設(shè)備根據(jù)應(yīng)用的標(biāo)識(shí),確定應(yīng)用對(duì)應(yīng)的連 接,并根據(jù)應(yīng)用的標(biāo)識(shí),確定應(yīng)用對(duì)應(yīng)的連接;然后推送服務(wù)器設(shè)備通過獲取的各連接,向 每一連接對(duì)應(yīng)的移動(dòng)終端推送該消息,以供該應(yīng)用的客戶端上登錄的該用戶接收該消息。 通過采用本實(shí)施例的技術(shù)方案,不用基于平臺(tái)的類型進(jìn)行消息推送,豐富了消息推送的方 式,且使用靈活方便。且進(jìn)一步地,本實(shí)施例中的推送服務(wù)器可以設(shè)置在各運(yùn)營(yíng)商的機(jī)房 中,與移動(dòng)終端在同一區(qū)域范圍內(nèi),克服了現(xiàn)有技術(shù)中檔需要訪問I0S平臺(tái)的或者Android 平臺(tái)的Push服務(wù)器時(shí),均需要訪問跨國(guó)網(wǎng)絡(luò),導(dǎo)致連接不穩(wěn)定,推動(dòng)不及時(shí)等的缺陷,因此 本實(shí)施例的消息推送方案,通過推送服務(wù)器發(fā)送消息的連接更加穩(wěn)定,推送更加及時(shí),消息 推送的效率更高。
[0073] 而且現(xiàn)有的ios平臺(tái)和android兩個(gè)平臺(tái)都有自己的協(xié)議,如果ios平臺(tái)和 android平臺(tái)的手機(jī)都要用push服務(wù)的話,使用者需要開發(fā)兩套代碼,且兩個(gè)協(xié)議是不一 樣的,且"不統(tǒng)一",接入成本相對(duì)較高。本發(fā)明實(shí)施例的技術(shù)方案的通用協(xié)議可以用以任何 平臺(tái),不需要為獨(dú)立的平臺(tái)單獨(dú)開發(fā),不需要額外的開發(fā)費(fèi)用,接入成本較低。
[0074] 可選地,在上述實(shí)施例的技術(shù)方案的基礎(chǔ)上,其中步驟100 "推送服務(wù)器設(shè)備接收 應(yīng)用服務(wù)器發(fā)送的消息"之后,步驟101 "推送服務(wù)器設(shè)備根據(jù)應(yīng)用的標(biāo)識(shí),獲取應(yīng)用對(duì)應(yīng) 的連接"之前,還包括:推送服務(wù)器設(shè)備判斷并確定存在推送消息的連接。
[0075] 例如,推送服務(wù)器設(shè)備可以判斷全局哈希映射表中是否存在包括應(yīng)用的標(biāo)識(shí)的映 射關(guān)系;當(dāng)全局哈希映射表中包括應(yīng)用的標(biāo)識(shí)的映射關(guān)系,推送服務(wù)器設(shè)備確定存在推送 消息的連接,否則,推送服務(wù)器設(shè)備確定不存在推送消息的連接。
[0076] 其中的映射關(guān)系為用戶的標(biāo)識(shí)、應(yīng)用的標(biāo)識(shí)和移動(dòng)終端的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;本實(shí) 施例中的用戶的標(biāo)識(shí)為用戶的賬戶,如QQ號(hào)碼等。應(yīng)用的標(biāo)識(shí)為該用戶賬戶登錄的應(yīng)用的 唯一標(biāo)識(shí),如QQ農(nóng)場(chǎng)的身份標(biāo)識(shí)碼(Identity ;ID)或者QQ空間的標(biāo)識(shí)ID等等。本實(shí)施例 中的移動(dòng)終端的標(biāo)識(shí)為該移動(dòng)終端的ID,用于唯一際標(biāo)識(shí)移動(dòng)終端的移動(dòng)裝備辨識(shí)碼,可 以由15位數(shù)字組成的"電子串號(hào)",它與每臺(tái)移動(dòng)終端一一對(duì)應(yīng),而且該碼是全世界唯一 的。每一個(gè)移動(dòng)終端在組裝完成后都將被賦予一個(gè)全球唯一的一組號(hào)碼,這個(gè)號(hào)碼從生產(chǎn) 到交付使用都將被制造生產(chǎn)的廠商所記錄。
[0077] 由上述可以知道,全局哈希映射表中包括多條用戶標(biāo)識(shí)、應(yīng)用標(biāo)識(shí)和移動(dòng)終端標(biāo) 識(shí)之間的映射關(guān)系。推送服務(wù)器設(shè)備判斷全局映射關(guān)系表中的多條映射關(guān)系中的應(yīng)用的標(biāo) 識(shí)是否包括有應(yīng)用服務(wù)器對(duì)應(yīng)的應(yīng)用的標(biāo)識(shí)對(duì)應(yīng)的映射關(guān)系,如果有,則確定存在推送消 息的連接,否則,推送服務(wù)器設(shè)備確定不存在推送消息的連接。
[0078] 進(jìn)一步可選地,在上述實(shí)施例的技術(shù)方案的基礎(chǔ)上,還可以包括如下步驟:
[0079] (A)當(dāng)推送服務(wù)器設(shè)備確定不存在推送所述消息的連接時(shí),推送服務(wù)器設(shè)備將消 息存儲(chǔ)在數(shù)據(jù)中心設(shè)備中;
[0080] 該數(shù)據(jù)中心設(shè)備可以設(shè)置在推送服務(wù)器中,也可以獨(dú)立于推送服務(wù)器設(shè)置。
[0081] 進(jìn)一步還包括如下步驟:
[0082] (B)推送服務(wù)器設(shè)備確定存在推送消息的連接時(shí),推送服務(wù)器設(shè)備從數(shù)據(jù)中心設(shè) 備中提取消息;
[0083] (C)推送服務(wù)器設(shè)備通過該連接向該連接對(duì)應(yīng)的移動(dòng)終端推送該消息,以供該應(yīng) 用的客戶端上登錄的該用戶接收該消息。
[0084] 也就是說,推送服務(wù)器會(huì)一直檢測(cè)推送服務(wù)器設(shè)備會(huì)一直檢測(cè)連接,一旦發(fā)現(xiàn)有 要推送消息的連接時(shí),推送服務(wù)器便從數(shù)據(jù)中心設(shè)備中提取消息;并通過該連接向移動(dòng)終 端推送消息,具體也就是向該使用該應(yīng)用的客戶端上的用戶推送消息。
[0085] 進(jìn)一步可選地,在上述實(shí)施例的技術(shù)方案的基礎(chǔ)上,本發(fā)明實(shí)施例中的推送服務(wù) 器具體可以包括三大線程模塊:主(master)線程、接入(access)線程和工作(worker)線 程。
[0086] 圖2為本發(fā)明實(shí)施例中推送服務(wù)器的線程架構(gòu)圖。如圖2所示,本實(shí)施例的推送 服務(wù)器采用多線程的模型,master線程,用以子線程的創(chuàng)建,以及全局管理。其中本實(shí)施例 中master線程創(chuàng)建worker線程和access線程的時(shí)候是工作之前預(yù)先創(chuàng)建的,通過根據(jù)需 求創(chuàng)建worker線程的數(shù)目,例如可以創(chuàng)建6個(gè)或者8個(gè)或者10個(gè)等多個(gè)worker線程,其 中圖2所示實(shí)施例以創(chuàng)建兩個(gè)worker線程為例介紹本發(fā)明的技術(shù)方案。
[0087] access線程作為接入線程,用以監(jiān)聽、接收移動(dòng)終端(client)端的連接,如圖2所 示,access線程用epoll方法作為移動(dòng)終端側(cè)連接的接入。Worker線程作為工作線程,有 多個(gè)(圖2以兩個(gè)為例),worker線程用以邏輯處理(包括連接管理、消息推送等)。worker 線程與移動(dòng)終端之間的連接為長(zhǎng)連接,worker線程hold住長(zhǎng)連接、邏輯處理、印oil管理收 發(fā)消息。其中每個(gè)worker線程對(duì)應(yīng)一個(gè)獨(dú)立的連接隊(duì)列,當(dāng)access線程從client端接收 到一個(gè)連接后,將連接壓入連接隊(duì)列,worker線程從對(duì)應(yīng)的連接隊(duì)列取出連接并使用。
[0088] 進(jìn)一步可選地,基于上述圖2所示的推送服務(wù)器的線程工作架構(gòu),上述實(shí)施例中 的步驟102中"推送服務(wù)器設(shè)備通過獲取的各連接,向每一連接對(duì)應(yīng)的移動(dòng)終端推送該消 息",具體可以包括:推送服務(wù)器設(shè)備的工作線程,通過獲取的連接向該連接對(duì)應(yīng)的移動(dòng)終 端推送消息,從而以供該應(yīng)用的客戶端上登錄的該用戶接收該消息。
[0089] 進(jìn)一步可選地,在推送服務(wù)器設(shè)備的工作線程,通過移動(dòng)終端與推送服務(wù)器之間 的基于用戶和應(yīng)用的連接向移動(dòng)終端推送消息之前,還可以包括如下步驟:
[0090] (i)推送服務(wù)器設(shè)備的接入線程監(jiān)聽并接收移動(dòng)終端發(fā)起的基于用戶和應(yīng)用的連 接,并將連接壓入推送服務(wù)器設(shè)備的工作線程的連接隊(duì)列中;
[0091] (ii)推送服務(wù)器設(shè)備的工作線程從連接隊(duì)列中獲取連接,并將連接存入全局哈希 映射表中。
[0092] 本實(shí)施例中的全局哈希映射表為所有worker線程共享的,這樣,可以避免不同的 worker線程持有相同移動(dòng)終端過來的連,從而可以避免相同連接的重復(fù)。
[0093] 進(jìn)一步可選地,在推送服務(wù)器設(shè)備的工作線程從連接隊(duì)列中獲取連接之后,還可 以包括如下步驟:
[0094] (iii)推送服務(wù)器設(shè)備的工作線程將連接存入工作線程的鏈接表中;
[0095] 其中每一個(gè)工作線程即worker線程維護(hù)一個(gè)私有的鏈接表,該鏈接表中存儲(chǔ)有 該工作線程正在處理的所有連接。
[0096] 進(jìn)一步地,還可以包括如下步驟:
[0097] (iv)推送服務(wù)器設(shè)備的工作線程定期輪詢鏈接表中的連接;
[0098] (V)推送服務(wù)器設(shè)備的工作線程檢查連接是否過期或者連接是否正常;
[0099] (vi)當(dāng)連接過期或者連接不正常,推送服務(wù)器設(shè)備的工作線程刪除連接;
[0100] (vii)推送服務(wù)器設(shè)備的工作線程刪除全局哈希映射表中連接對(duì)應(yīng)的映射關(guān)系。
[0101] 通過上述步驟(iv)_ (vii),工作線程可以對(duì)連接進(jìn)行邏輯管理,保證所有在線連 接的有效性,保證了消息推送的效率。
[0102] 需要說明的是,推送服務(wù)器設(shè)備的主線程預(yù)先創(chuàng)建推送服務(wù)器設(shè)備的工作線程和 推送服務(wù)器設(shè)備的接入線程。
[0103] 上述實(shí)施例的消息推送方法,可以采用可結(jié)合的方式任意組合形成本發(fā)明的可選 實(shí)施例,在此不再贅述。
[0104] 上述實(shí)施例的消息推送方法,不用基于平臺(tái)的類型進(jìn)行消息推送,豐富了消息推 送的方式,且使用靈活方便。且進(jìn)一步地,上述實(shí)施例中的推送服務(wù)器可以設(shè)置在各運(yùn)營(yíng)商 的機(jī)房中,與移動(dòng)終端在同一區(qū)域范圍內(nèi),克服了現(xiàn)有技術(shù)中檔需要訪問I0S平臺(tái)的或者 Android平臺(tái)的Push服務(wù)器時(shí),均需要訪問跨國(guó)網(wǎng)絡(luò),導(dǎo)致連接不穩(wěn)定,推動(dòng)不及時(shí)等的缺 陷,因此上述實(shí)施例的消息推送方案,通過推送服務(wù)器發(fā)送消息的連接更加穩(wěn)定,推送更加 及時(shí),消息推送的效率更高。
[0105] 而且現(xiàn)有的ios平臺(tái)和android兩個(gè)平臺(tái)都有自己的協(xié)議,如果ios平臺(tái)和 android平臺(tái)的手機(jī)都要用push服務(wù)的話,使用者需要開發(fā)兩套代碼,且兩個(gè)協(xié)議是不一 樣的,且"不統(tǒng)一",接入成本相對(duì)較高。本發(fā)明實(shí)施例的技術(shù)方案的通用協(xié)議可以用以任何 平臺(tái),不需要為獨(dú)立的平臺(tái)單獨(dú)開發(fā),不需要額外的開發(fā)費(fèi)用,接入成本較低。
[0106] 實(shí)施例二
[0107] 圖3為本發(fā)明實(shí)施例二提供給的消息推送方法的流程圖。本實(shí)施例的消息推送方 法在上述圖1及上述可選實(shí)施例的基礎(chǔ)上,詳細(xì)介紹本發(fā)明的技術(shù)方案。且本實(shí)施例中,以 消息推送服務(wù)器設(shè)備采用圖2所示的線程架構(gòu)為例,介紹本發(fā)明的技術(shù)方案。如圖3所示, 本實(shí)施例的消息推送方法,具體可以包括如下步驟:
[0108] 200、當(dāng)用戶通過移動(dòng)終端登錄應(yīng)用時(shí),移送終端與消息推送服務(wù)器設(shè)備之間建立 基于該用戶和該應(yīng)用的連接;
[0109] 例如用戶A通過移動(dòng)終端B登錄應(yīng)用C,在移動(dòng)終端B與消息推送服務(wù)器設(shè)備之間 建立基于該用戶A和該應(yīng)用C的連接。若用戶D通過移動(dòng)終端E登錄應(yīng)用C,在移動(dòng)終端E 與消息推送服務(wù)器設(shè)備之間也需要建立基于該用戶D和該應(yīng)用C的連接。亦即,每一條連 接必須包括用戶、用戶登錄的應(yīng)用和移動(dòng)終端三個(gè)參數(shù)信息。該連接可以采用用戶標(biāo)識(shí)、應(yīng) 用標(biāo)識(shí)和終端的標(biāo)識(shí)之間的對(duì)應(yīng)關(guān)系表示。
[0110] 按照該步驟200可以各移動(dòng)終端與推送服務(wù)器之間可以建立海量連接。
[0111] 201、消息推送服務(wù)器設(shè)備的接入線程監(jiān)聽到連接,并將連接壓入到推送服務(wù)器設(shè) 備的工作線程的連接隊(duì)列中;
[0112] 需要說明的是,消息推送服務(wù)器設(shè)備的主線程在工作之前預(yù)先設(shè)置多條工作線程 和接入線程。且接入線程在向工作線程的連接隊(duì)列中壓入監(jiān)聽到的連接時(shí),采用輪詢的方 式順次向各個(gè)工作線程的連接隊(duì)列中壓入連接。
[0113] 202、消息推送服務(wù)器設(shè)備的各工作線程從對(duì)應(yīng)的連接隊(duì)列中獲取連接,并將連接 存入全局哈希映射表中;
[0114] 該全局哈希映射表為所有工作線程共享的,該全局哈希映射表中每一條連接中包 括一條用戶標(biāo)識(shí)、應(yīng)用標(biāo)識(shí)和移動(dòng)終端之間的對(duì)應(yīng)關(guān)系。每個(gè)接入線程均將其獲取到的連 接存入全局哈希映射表中。
[0115] 需要說明的是,推送服務(wù)器設(shè)備的工作線程同時(shí)還將連接存入工作線程的鏈接表 中;
[0116] 其中每一個(gè)工作線程即worker線程維護(hù)一個(gè)私有的鏈接表,該鏈接表中存儲(chǔ)有 該工作線程正在處理的連接。
[0117] 同時(shí),推送服務(wù)器設(shè)備的工作線程還對(duì)鏈接表中的連接進(jìn)行管理,如推送服務(wù)器 設(shè)備的工作線程定期輪詢鏈接表中的連接;并檢查連接是否過期或者連接是否正常;當(dāng)連 接過期或者連接不正常,推送服務(wù)器設(shè)備的工作線程刪除連接。同時(shí)推送服務(wù)器設(shè)備的工 作線程刪除全局哈希映射表中連接對(duì)應(yīng)的映射關(guān)系,以保證所有在線連接的有效性,保證 了消息推送的效率。
[0118] 203、當(dāng)推送服務(wù)器設(shè)備接收應(yīng)用服務(wù)器發(fā)送的消息時(shí),獲取該應(yīng)用的標(biāo)識(shí);
[0119] 204、推送服務(wù)器設(shè)備的工作線程判斷全局哈希映射表中是否存在包括該應(yīng)用的 標(biāo)識(shí)的映射關(guān)系,當(dāng)存在時(shí),執(zhí)行步驟205 ;否則執(zhí)行步驟206 ;
[0120] 205、推送服務(wù)器設(shè)備的工作線程確定存在推送消息的連接;執(zhí)行步驟207 ;
[0121] 206、推送服務(wù)器設(shè)備的工作線程確定不存在推送該消息的連接;執(zhí)行步驟208 ;
[0122] 207、推送服務(wù)器設(shè)備的工作線程通過該連接向該連接對(duì)應(yīng)的移動(dòng)終端推送該消 息,以供該應(yīng)用的客戶端上登錄的該用戶接收該消息,結(jié)束。
[0123] 208、推送服務(wù)器設(shè)備的工作線程將該消息存入數(shù)據(jù)中心設(shè)備中;執(zhí)行步驟209 ;
[0124] 209、推送服務(wù)器設(shè)備的接入線程檢測(cè)到新接入的連接中包括推送該消息的連接 時(shí),從數(shù)據(jù)中心設(shè)備中提取該消息;執(zhí)行步驟207。
[0125] 其中,在步驟208之后,推送服務(wù)器設(shè)備的接入線程繼續(xù)檢測(cè)新接入的連接,并將 新接入的連接壓入到推送服務(wù)器設(shè)備的工作線程的連接隊(duì)列中,直到推送服務(wù)器設(shè)備的接 入線程檢測(cè)到新接入的連接是推送該消息的連接時(shí)執(zhí)行步驟209。
[0126] 本實(shí)施例的消息推送方法,不用基于平臺(tái)的類型進(jìn)行消息推送,豐富了消息推送 的方式,且使用靈活方便。且進(jìn)一步地,上述實(shí)施例中的推送服務(wù)器可以設(shè)置在各運(yùn)營(yíng)商 的機(jī)房中,與移動(dòng)終端在同一區(qū)域范圍內(nèi),克服了現(xiàn)有技術(shù)中檔需要訪問I0S平臺(tái)的或者 Android平臺(tái)的Push服務(wù)器時(shí),均需要訪問跨國(guó)網(wǎng)絡(luò),導(dǎo)致連接不穩(wěn)定,推動(dòng)不及時(shí)等的缺 陷,因此上述實(shí)施例的消息推送方案,通過推送服務(wù)器發(fā)送消息的連接更加穩(wěn)定,推送更加 及時(shí),消息推送的效率更高。
[0127] 而且現(xiàn)有的ios平臺(tái)和android兩個(gè)平臺(tái)都有自己的協(xié)議,如果ios平臺(tái)和 android平臺(tái)的手機(jī)都要用push服務(wù)的話,使用者需要開發(fā)兩套代碼,且兩個(gè)協(xié)議是不一 樣的,且"不統(tǒng)一",接入成本相對(duì)較高。本發(fā)明實(shí)施例的技術(shù)方案的通用協(xié)議可以用以任何 平臺(tái),不需要為獨(dú)立的平臺(tái)單獨(dú)開發(fā),不需要額外的開發(fā)費(fèi)用,接入成本較低。
[0128] 實(shí)施例三
[0129] 圖4為本發(fā)明實(shí)施例三提供的推送服務(wù)器設(shè)備的結(jié)構(gòu)示意圖。如圖3所示,本實(shí) 施例的推送服務(wù)器設(shè)備,具體可以包括:接收模塊10和處理模塊11。
[0130] 其中接收模塊10用于接收應(yīng)用服務(wù)器發(fā)送的消息;該消息中包括應(yīng)用的標(biāo)識(shí);處 理模塊11與接收模塊10連接,處理模塊11用于根據(jù)接收模塊10接收的消息中的應(yīng)用的 標(biāo)識(shí),確定應(yīng)用對(duì)應(yīng)的連接;該連接為移動(dòng)終端與推送服務(wù)器之間基于用戶和應(yīng)用的連接; 處理模塊11還用于通過各連接,向該連接對(duì)應(yīng)的移動(dòng)終端推送消息,以供應(yīng)用的客戶端上 登錄的用戶接收消息。
[0131] 本實(shí)施例的推送服務(wù)器設(shè)備,通過采用上述模塊實(shí)現(xiàn)消息推送的實(shí)現(xiàn)機(jī)制與上述 相關(guān)方法實(shí)施例的實(shí)現(xiàn)機(jī)制相同,詳細(xì)可以參考上述實(shí)施例的記載,在此不再贅述。
[0132] 本實(shí)施例的推送服務(wù)器設(shè)備,通過采用上述模塊實(shí)現(xiàn)根據(jù)應(yīng)用的標(biāo)識(shí),確定應(yīng)用 對(duì)應(yīng)的連接,并根據(jù)應(yīng)用的標(biāo)識(shí),確定應(yīng)用對(duì)應(yīng)的連接;然后推送服務(wù)器設(shè)備通過獲取的各 連接,向每一連接對(duì)應(yīng)的移動(dòng)終端推送該消息,以供該應(yīng)用的客戶端上登錄的該用戶接收 該消息。通過采用本實(shí)施例的技術(shù)方案,不用基于平臺(tái)的類型進(jìn)行消息推送,豐富了消息推 送的方式,且使用靈活方便。且進(jìn)一步地,本實(shí)施例中的推送服務(wù)器可以設(shè)置在各運(yùn)營(yíng)商 的機(jī)房中,與移動(dòng)終端在同一區(qū)域范圍內(nèi),克服了現(xiàn)有技術(shù)中檔需要訪問I0S平臺(tái)的或者 Android平臺(tái)的Push服務(wù)器時(shí),均需要訪問跨國(guó)網(wǎng)絡(luò),導(dǎo)致連接不穩(wěn)定,推動(dòng)不及時(shí)等的缺 陷,因此本實(shí)施例的消息推送方案,通過推送服務(wù)器發(fā)送消息的連接更加穩(wěn)定,推送更加及 時(shí),消息推送的效率更高。
[0133] 而且現(xiàn)有的ios平臺(tái)和android兩個(gè)平臺(tái)都有自己的協(xié)議,如果ios平臺(tái)和 android平臺(tái)的手機(jī)都要用push服務(wù)的話,使用者需要開發(fā)兩套代碼,且兩個(gè)協(xié)議是不一 樣的,且"不統(tǒng)一",接入成本相對(duì)較高。本發(fā)明實(shí)施例的技術(shù)方案的通用協(xié)議可以用以任何 平臺(tái),不需要為獨(dú)立的平臺(tái)單獨(dú)開發(fā),不需要額外的開發(fā)費(fèi)用,接入成本較低。
[0134] 實(shí)施例四
[0135] 圖5為實(shí)施例四提供的推送服務(wù)器設(shè)備的結(jié)構(gòu)示意圖。本實(shí)施例在上述圖4所示 實(shí)施例的基礎(chǔ)上,進(jìn)一步更加詳細(xì)地介紹本發(fā)明的技術(shù)方案。
[0136] 本實(shí)施例的推送服務(wù)器設(shè)備中處理模塊11還用于在接收模塊10接收應(yīng)用服務(wù)器 發(fā)送的消息之后,處理模塊11根據(jù)應(yīng)用的標(biāo)識(shí),獲取應(yīng)用對(duì)應(yīng)的連接之前,判斷并確定存 在推送消息的連接。
[0137] 可選地,本實(shí)施例的推送服務(wù)器設(shè)備中處理模塊11具體用于判斷全局哈希映射 表中是否存在包括該應(yīng)用的標(biāo)識(shí)的映射關(guān)系;該映射關(guān)系為用戶的標(biāo)識(shí)、該應(yīng)用的標(biāo)識(shí)和 移動(dòng)終端的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;當(dāng)全局哈希映射表中包括該應(yīng)用的標(biāo)識(shí)的映射關(guān)系,確定存 在推送消息的連接,否則,確定不存在推送消息的連接。
[0138] 進(jìn)一步可選地,本實(shí)施例的推送服務(wù)器設(shè)備中處理模塊11還用于當(dāng)確定不存在 推送消息的連接時(shí),將消息存儲(chǔ)在數(shù)據(jù)中心設(shè)備中。處理模塊11還用于當(dāng)推送服務(wù)器設(shè)備 確定存在推送消息的連接時(shí),從數(shù)據(jù)中心設(shè)備中提取消息,并通過該連接向連接對(duì)應(yīng)的移 動(dòng)終端推送消息,以供應(yīng)用的客戶端上登錄的用戶接收消息。
[0139] 進(jìn)一步可選地,本實(shí)施例的推送服務(wù)器設(shè)備中處理模塊11包括工作線程子模塊 111和接入線程子模塊112。
[0140] 其中工作線程子模塊112用于通過獲取的連接向連接對(duì)應(yīng)的移動(dòng)終端推送消息。 工作線程子模塊112與接收模塊10連接,工作線程子模塊112具體用于在接收模塊10接 收應(yīng)用服務(wù)器發(fā)送的消息之后,根據(jù)應(yīng)用的標(biāo)識(shí),獲取應(yīng)用對(duì)應(yīng)的連接,并進(jìn)一步在獲取應(yīng) 用對(duì)應(yīng)的連接之前,還判斷并確定存在推送消息的連接。例如工作線程子模塊112具體用 于判斷全局哈希映射表中是否存在包括該應(yīng)用的標(biāo)識(shí)的映射關(guān)系;該映射關(guān)系為用戶的標(biāo) 識(shí)、該應(yīng)用的標(biāo)識(shí)和移動(dòng)終端的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;當(dāng)全局哈希映射表中包括該應(yīng)用的標(biāo)識(shí) 的映射關(guān)系,確定存在推送消息的連接,否則,確定不存在推送消息的連接。
[0141] 其中,接入線程子模塊111與工作線程子模塊112連接,接入線程子模塊111用于 監(jiān)聽并接收移動(dòng)終端發(fā)起的基于用戶和應(yīng)用的連接,并將連接壓入工作線程子模塊112的 連接隊(duì)列中;工作線程子模塊112還用于從連接隊(duì)列中獲取連接,并將連接存入全局哈希 映射表中。
[0142] 進(jìn)一步可選地,本實(shí)施例的推送服務(wù)器設(shè)備中工作線程子模塊112還用于將連接 存入工作線程子模塊112的鏈接表中;
[0143] 進(jìn)一步地,工作線程子模塊112還用于定期輪詢鏈接表中的連接;并檢查連接是 否過期或者連接是否正常;當(dāng)連接過期或者連接不正常,刪除連接。工作線程子模塊112還 用于刪除全局哈希映射表中連接對(duì)應(yīng)的映射關(guān)系,以保證連接的有效性,保證消息的正確 推送。
[0144] 進(jìn)一步可選地,本實(shí)施例的推送服務(wù)器設(shè)備中處理模塊11還包括主線程子模塊 113。其中主線程子模塊113分別與工作線程子模塊112和接入線程子模塊111連接,主線 程子模塊113用于預(yù)先創(chuàng)建工作線程子模塊112和和接入線程子模塊111。
[0145] 本實(shí)施例的推送服務(wù)器設(shè)備,上述所有可選技術(shù)方案,可以采用可以結(jié)合的任意 方式結(jié)合形成本發(fā)明的可選實(shí)施例,在此不再贅述。
[0146] 本實(shí)施例的推送服務(wù)器設(shè)備,通過采用上述模塊實(shí)現(xiàn)消息推送的實(shí)現(xiàn)機(jī)制與上述 相關(guān)方法實(shí)施例的實(shí)現(xiàn)機(jī)制相同,詳細(xì)可以參考上述實(shí)施例的記載,在此不再贅述。
[0147] 本實(shí)施例的推送服務(wù)器設(shè)備,通過采用上述模塊實(shí)現(xiàn)不用基于平臺(tái)的類型進(jìn)行消 息推送,豐富了消息推送的方式,且使用靈活方便。且進(jìn)一步地,上述實(shí)施例中的推送服務(wù) 器可以設(shè)置在各運(yùn)營(yíng)商的機(jī)房中,與移動(dòng)終端在同一區(qū)域范圍內(nèi),克服了現(xiàn)有技術(shù)中檔需 要訪問IOS平臺(tái)的或者Android平臺(tái)的Push服務(wù)器時(shí),均需要訪問跨國(guó)網(wǎng)絡(luò),導(dǎo)致連接不 穩(wěn)定,推動(dòng)不及時(shí)等的缺陷,因此上述實(shí)施例的消息推送方案,通過推送服務(wù)器發(fā)送消息的 連接更加穩(wěn)定,推送更加及時(shí),消息推送的效率更高。
[0148] 而且現(xiàn)有的ios平臺(tái)和android兩個(gè)平臺(tái)都有自己的協(xié)議,如果ios平臺(tái)和 android平臺(tái)的手機(jī)都要用push服務(wù)的話,使用者需要開發(fā)兩套代碼,且兩個(gè)協(xié)議是不一 樣的,且"不統(tǒng)一",接入成本相對(duì)較高。本發(fā)明實(shí)施例的技術(shù)方案的通用協(xié)議可以用以任何 平臺(tái),不需要為獨(dú)立的平臺(tái)單獨(dú)開發(fā),不需要額外的開發(fā)費(fèi)用,接入成本較低。
[0149] 實(shí)施例五
[0150] 圖6為本發(fā)明實(shí)施例五提供消息推送系統(tǒng)的結(jié)構(gòu)示意圖。如圖5所示,本實(shí)施例 的消息推送系統(tǒng)包括應(yīng)用服務(wù)器20、推送服務(wù)器設(shè)備30和移動(dòng)終端40 ;推送服務(wù)器設(shè)備 30分別與應(yīng)用服務(wù)器設(shè)備20和移動(dòng)終端40通信連接。
[0151] 例如應(yīng)用服務(wù)器20用于向推送服務(wù)器設(shè)備30發(fā)送要推送的消息,該消息中會(huì)攜 帶應(yīng)用的標(biāo)識(shí)。推送服務(wù)器設(shè)備30用于接收該消息;并根據(jù)該應(yīng)用的標(biāo)識(shí),確定該應(yīng)用對(duì) 應(yīng)的連接;該連接為移動(dòng)終端與推送服務(wù)器之間基于用戶和該應(yīng)用的連接;最后推送服務(wù) 器設(shè)備30還用于通過各所述連接,向該連接對(duì)應(yīng)的移動(dòng)終端推送該消息,以供該應(yīng)用的客 戶端上登錄的用戶接收該消息。
[0152] 本實(shí)施例中的推送服務(wù)器設(shè)備30與現(xiàn)有技術(shù)中的I0S平臺(tái)和Android平臺(tái)的 Push服務(wù)器不同,可以設(shè)置與移動(dòng)終端設(shè)置在同一區(qū)域,如可以該移動(dòng)終端所在的國(guó)家內(nèi)。 而且該推送服務(wù)器不限制為臺(tái)服務(wù)器,可以為一組集群服務(wù)器,部署在一個(gè)域名網(wǎng)站的下 面,而且可以對(duì)移動(dòng)、聯(lián)通、電信等不同的運(yùn)營(yíng)商有不同的機(jī)房部署。移動(dòng)終端連接推送服 務(wù)器的域名網(wǎng)站,該域名網(wǎng)站的GSLB會(huì)針對(duì)當(dāng)前移動(dòng)終端的網(wǎng)絡(luò)類型如電信、移動(dòng)或聯(lián) 通,自動(dòng)選擇對(duì)應(yīng)的機(jī)房(如電信、移動(dòng)或聯(lián)通)的推送服務(wù)器設(shè)備。
[0153] 具體地,本實(shí)施例的推送服務(wù)器設(shè)備30具體采用如上實(shí)施例四或者五所述的推 送服務(wù)器設(shè)備,并可以采用上述實(shí)施例一或者二所述的消息推送方法實(shí)現(xiàn)消息的推送,詳 細(xì)可以參考上述相關(guān)實(shí)施例的記載,在此不再贅述。
[0154] 本實(shí)施例的消息推送系統(tǒng),通過采用上述技術(shù)方案,不用基于平臺(tái)的類型進(jìn)行消 息推送,豐富了消息推送的方式,且使用靈活方便。且進(jìn)一步地,本實(shí)施例中的推送服務(wù)器 可以設(shè)置在各運(yùn)營(yíng)商的機(jī)房中,與移動(dòng)終端在同一區(qū)域范圍內(nèi),克服了現(xiàn)有技術(shù)中檔需要 訪問I0S平臺(tái)的或者Android平臺(tái)的Push服務(wù)器時(shí),均需要訪問跨國(guó)網(wǎng)絡(luò),導(dǎo)致連接不穩(wěn) 定,推動(dòng)不及時(shí)等的缺陷,因此本實(shí)施例的消息推送方案,通過推送服務(wù)器發(fā)送消息的連接 更加穩(wěn)定,推送更加及時(shí),消息推送的效率更高。
[0155] 而且現(xiàn)有的ios平臺(tái)和android兩個(gè)平臺(tái)都有自己的協(xié)議,如果ios平臺(tái)和 android平臺(tái)的手機(jī)都要用push服務(wù)的話,使用者需要開發(fā)兩套代碼,且兩個(gè)協(xié)議是不一 樣的,且"不統(tǒng)一",接入成本相對(duì)較高。本發(fā)明實(shí)施例的技術(shù)方案的通用協(xié)議可以用以任何 平臺(tái),不需要為獨(dú)立的平臺(tái)單獨(dú)開發(fā),不需要額外的開發(fā)費(fèi)用,接入成本較低。
[0156] 需要說明的是:上述實(shí)施例提供的消息推送服務(wù)器設(shè)備在消息推送業(yè)務(wù)時(shí),僅以 上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不 同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部 或者部分功能。另外,上述實(shí)施例提供的消息推送服務(wù)器設(shè)備與消息推送的方法實(shí)施例屬 于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。
[0157] 上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0158] 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件 來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀 存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
[0159] 以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種消息推送方法,其特征在于,所述方法包括: 推送服務(wù)器設(shè)備接收應(yīng)用服務(wù)器發(fā)送的消息;所述消息中包括所述應(yīng)用的標(biāo)識(shí); 所述推送服務(wù)器設(shè)備根據(jù)所述應(yīng)用的標(biāo)識(shí),確定所述應(yīng)用對(duì)應(yīng)的連接;所述連接為移 動(dòng)終端與所述推送服務(wù)器之間基于用戶和所述應(yīng)用的連接; 所述推送服務(wù)器設(shè)備通過各所述連接,向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消 息,以供所述應(yīng)用的客戶端上登錄的所述用戶接收所述消息。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述推送服務(wù)器設(shè)備接收應(yīng)用服務(wù)器發(fā) 送的消息之后,所述推送服務(wù)器設(shè)備根據(jù)所述應(yīng)用的標(biāo)識(shí),獲取所述應(yīng)用對(duì)應(yīng)的連接之前, 所述方法還包括: 所述推送服務(wù)器設(shè)備判斷并確定存在推送所述消息的連接。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述推送服務(wù)器設(shè)備判斷并確定存在推 送所述消息的連接,包括: 所述推送服務(wù)器設(shè)備判斷全局哈希映射表中是否存在包括所述應(yīng)用的標(biāo)識(shí)的映射關(guān) 系;所述映射關(guān)系為所述用戶的標(biāo)識(shí)、所述應(yīng)用的標(biāo)識(shí)和所述移動(dòng)終端的標(biāo)識(shí)的對(duì)應(yīng)關(guān) 系; 當(dāng)所述全局哈希映射表中包括所述應(yīng)用的標(biāo)識(shí)的映射關(guān)系,所述推送服務(wù)器設(shè)備確定 存在推送所述消息的連接,否則,所述推送服務(wù)器設(shè)備確定不存在推送所述消息的連接。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 當(dāng)所述推送服務(wù)器設(shè)備確定不存在推送所述消息的連接時(shí),所述推送服務(wù)器設(shè)備將所 述消息存儲(chǔ)在數(shù)據(jù)中心設(shè)備中; 所述方法進(jìn)一步還包括: 當(dāng)所述推送服務(wù)器設(shè)備確定存在推送所述消息的連接時(shí),所述推送服務(wù)器設(shè)備從所述 數(shù)據(jù)中心設(shè)備中提取所述消息; 所述推送服務(wù)器設(shè)備通過所述連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消息,以 供所述應(yīng)用的客戶端上登錄的所述用戶接收所述消息。
5. 根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述推送服務(wù)器設(shè)備通過所述連接向 所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消息,包括: 所述推送服務(wù)器設(shè)備的工作線程,通過所述連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送 所述消息。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述推送服務(wù)器設(shè)備的工作線程,通過所 述連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消息之前,所述方法還包括: 所述推送服務(wù)器設(shè)備的接入線程監(jiān)聽并接收所述移動(dòng)終端發(fā)起的基于所述用戶和所 述應(yīng)用的連接,并將所述連接壓入所述推送服務(wù)器設(shè)備的工作線程的連接隊(duì)列中; 所述推送服務(wù)器設(shè)備的工作線程從所述連接隊(duì)列中獲取所述連接,并將所述連接存入 所述全局哈希映射表中。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述推送服務(wù)器設(shè)備的工作線程從所述 連接隊(duì)列中獲取所述連接之后,所述方法還包括: 所述推送服務(wù)器設(shè)備的工作線程將所述連接存入所述工作線程的鏈接表中; 進(jìn)一步地,所述方法還包括: 所述推送服務(wù)器設(shè)備的工作線程定期輪詢所述鏈接表中的所述連接; 所述推送服務(wù)器設(shè)備的工作線程檢查所述連接是否過期或者所述連接是否正常; 當(dāng)所述連接過期或者所述連接不正常,所述推送服務(wù)器設(shè)備的工作線程刪除所述連 接; 所述推送服務(wù)器設(shè)備的工作線程刪除所述全局哈希映射表中所述連接對(duì)應(yīng)的映射關(guān) 系。
8. 根據(jù)權(quán)利要求6或7所述的方法,其特征在于,所述方法還包括: 所述推送服務(wù)器設(shè)備的主線程預(yù)先創(chuàng)建所述推送服務(wù)器設(shè)備的工作線程和所述推送 服務(wù)器設(shè)備的接入線程。
9. 一種推送服務(wù)器設(shè)備,其特征在于,所述設(shè)備包括: 接收模塊,用于接收應(yīng)用服務(wù)器發(fā)送的消息;所述消息中包括所述應(yīng)用的標(biāo)識(shí); 處理模塊,用于根據(jù)所述應(yīng)用的標(biāo)識(shí),確定所述應(yīng)用對(duì)應(yīng)的連接;所述連接為移動(dòng)終端 與所述推送服務(wù)器之間基于用戶和所述應(yīng)用的連接;所述處理模塊,還用于通過各所述連 接,向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消息,以供所述應(yīng)用的客戶端上登錄的所述 用戶接收所述消息。
10. 根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,所述處理模塊,還用于在所述接收模塊 接收應(yīng)用服務(wù)器發(fā)送的消息之后,所述處理模塊根據(jù)所述應(yīng)用的標(biāo)識(shí),獲取所述應(yīng)用對(duì)應(yīng) 的連接之前,判斷并確定存在推送所述消息的連接。
11. 根據(jù)權(quán)利要求10所述的設(shè)備,其特征在于,所述處理模塊,具體用于判斷全局哈 希映射表中是否存在包括所述應(yīng)用的標(biāo)識(shí)的映射關(guān)系;所述映射關(guān)系為所述用戶的標(biāo)識(shí)、 所述應(yīng)用的標(biāo)識(shí)和所述移動(dòng)終端的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;當(dāng)所述全局哈希映射表中包括所述應(yīng) 用的標(biāo)識(shí)的映射關(guān)系,確定存在推送所述消息的連接,否則,確定不存在推送所述消息的連 接。
12. 根據(jù)權(quán)利要求11所述的設(shè)備,其特征在于: 所述處理模塊,還用于當(dāng)確定不存在推送所述消息的連接時(shí),將所述消息存儲(chǔ)在數(shù)據(jù) 中心設(shè)備中; 所述處理模塊,還用于當(dāng)所述推送服務(wù)器設(shè)備確定存在推送所述消息的連接時(shí),從所 述數(shù)據(jù)中心設(shè)備中提取所述消息,并通過所述連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所 述消息,以供所述應(yīng)用的客戶端上登錄的所述用戶接收所述消息。
13. 根據(jù)權(quán)利要求11或12所述的設(shè)備,其特征在于,所述處理模塊,包括工作線程子模 塊和接入線程子模塊; 所述工作線程子模塊,用于通過所述連接向所述連接對(duì)應(yīng)的所述移動(dòng)終端推送所述消 息; 所述接入線程子模塊,用于監(jiān)聽并接收所述移動(dòng)終端發(fā)起的基于所述用戶和所述應(yīng)用 的連接,并將所述連接壓入所述工作線程子模塊的連接隊(duì)列中; 所述工作線程子模塊,還用于從所述連接隊(duì)列中獲取所述連接,并將所述連接存入所 述全局哈希映射表中。
14. 根據(jù)權(quán)利要求13所述的設(shè)備,其特征在于: 所述工作線程子模塊,還用于將所述連接存入所述工作線程子模塊的鏈接表中; 進(jìn)一步地,所述工作線程子模塊,還用于定期輪詢所述鏈接表中的所述連接;并檢查所 述連接是否過期或者所述連接是否正常;當(dāng)所述連接過期或者所述連接不正常,刪除所述 連接; 所述工作線程子模塊,還用于刪除所述全局哈希映射表中所述連接對(duì)應(yīng)的映射關(guān)系。
15. 根據(jù)權(quán)利要求13或14所述的設(shè)備,其特征在于,所述處理模塊還包括: 所述主線程子模塊,用于預(yù)先創(chuàng)建所述工作線程子模塊和所述接入線程子模塊。
16. -種消息推送系統(tǒng),其特征在于,包括應(yīng)用服務(wù)器、推送服務(wù)器設(shè)備和移動(dòng)終端; 所述推送服務(wù)器設(shè)備分別與所述應(yīng)用服務(wù)器和所述移動(dòng)終端通信連接,所述推送服務(wù)器設(shè) 備采用如上權(quán)利要求9-15任一所述的推送服務(wù)器設(shè)備。
【文檔編號(hào)】H04L12/58GK104144098SQ201310165603
【公開日】2014年11月12日 申請(qǐng)日期:2013年5月7日 優(yōu)先權(quán)日:2013年5月7日
【發(fā)明者】周齡 申請(qǐng)人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
潮安县| 句容市| 当阳市| 沙河市| 崇礼县| 云和县| 定远县| 锦州市| 灵石县| 肃南| 丹巴县| 思南县| 兴义市| 什邡市| 广水市| 博乐市| 沙河市| 辽宁省| 保山市| 万全县| 塔河县| 瑞昌市| 舟曲县| 清徐县| 阳山县| 边坝县| 土默特左旗| 湖北省| 彭州市| 盈江县| 五峰| 富民县| 乃东县| 邮箱| 田阳县| 潞城市| 高安市| 长白| 汉沽区| 中阳县| 萨迦县|