亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種推送服務實現(xiàn)方法、裝置、終端設(shè)備及系統(tǒng)的制作方法

文檔序號:10515628閱讀:227來源:國知局
一種推送服務實現(xiàn)方法、裝置、終端設(shè)備及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種推送服務實現(xiàn)方法、裝置、終端設(shè)備及系統(tǒng)。本發(fā)明推送服務實現(xiàn)方法,包括:推送服務創(chuàng)建與推送服務器的長連接;所述推送服務保存所述終端設(shè)備中多個需要接收推送消息的應用的注冊信息;所述推送服務通過所述長連接接收到所述推送服務器推送給應用的消息后,根據(jù)保存的所述應用的注冊信息,將所述消息發(fā)送至相應的應用。本發(fā)明通過創(chuàng)建和維持與服務器之間的唯一的長連接,所有的推送消息統(tǒng)一由這條連接與推送服務器通訊,解決了現(xiàn)有技術(shù)中終端設(shè)備需要維護多條與推送服務器的長連接,對終端設(shè)備功耗和對推送服務器造成巨大壓力的問題。
【專利說明】
一種推送服務實現(xiàn)方法、裝置、終端設(shè)備及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通訊技術(shù)領(lǐng)域,尤其涉及一種推送服務實現(xiàn)方法、裝置、終端設(shè)備及系統(tǒng)。
【背景技術(shù)】
[0002]當前的移動終端設(shè)備或智能終端設(shè)備為了更加地人性化,往往會記錄用戶的動作、愛好等內(nèi)容,然后根據(jù)用戶不同的動作、愛好推送一些不同的內(nèi)容,另外也會推送一些用戶關(guān)心內(nèi)容或者商戶廣告,這就不可避免使用推送服務。
[0003]為了保持推送的及時性和穩(wěn)定性,客戶端(Client)需要與服務端(Server)保持長連接。所述的長連接是指,在一個連接上可以連續(xù)發(fā)送多個數(shù)據(jù)包的連接,在該連接保持期間,如果沒有數(shù)據(jù)包發(fā)送,需要雙方發(fā)鏈路檢測包,也就是說雖然沒有數(shù)據(jù)包發(fā)送,也不會斷開該連接。
[0004]現(xiàn)在市面主流的app(應用)及推送sdk(Software Development Kit,軟件開發(fā)工具包)都采用單app單連接的方式,即每個app都需要單獨維護一條與推送服務器的長連接,例如,QQ維護與QQ服務器的長連接,微信維護與微信服務器的長連接等等。
[0005]然而,上述在前方案存在如下不足:采用這種單app單連接的方式,由于長連接是長久保持的,所以如果需要推送消息的話必須時刻保持該連接可用,這樣,對于一些推送頻率不是很高的應用,也必須維護著這條連接,因而增加了終端設(shè)備的功耗;另一方面,一臺終端設(shè)備有可能有多個app都連接至同一推送服務器,那么服務器的壓力也會相應地增大。

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

[0006]本發(fā)明提供一種推送服務實現(xiàn)方法,以解決現(xiàn)有方案中終端設(shè)備需要維護多條與推送服務器的長連接,從而對終端設(shè)備功耗和對推送服務器造成巨大壓力的問題。
[0007]本發(fā)明提供一種推送服務實現(xiàn)方法,在終端設(shè)備中創(chuàng)建推送服務,該方法包括:
[0008]推送服務創(chuàng)建與推送服務器的長連接;
[0009]所述推送服務保存所述終端設(shè)備中多個需要接收推送消息的應用的注冊信息;
[0010]所述推送服務通過所述長連接接收到所述推送服務器推送給應用的消息后,根據(jù)保存的所述應用的注冊信息,將所述消息發(fā)送至相應的應用。
[0011 ]進一步地,可以在終端設(shè)備中內(nèi)置推送服務客戶端,由該推送服務客戶端創(chuàng)建推送服務。
[0012]此外,還可以通過推送sdk在終端設(shè)備中創(chuàng)建推送服務,首先檢測所述終端設(shè)備中是否存在推送服務客戶端,如果檢測到,則使用所述推送服務客戶端創(chuàng)建的推送服務;如果沒有檢測到推送服務客戶端,則再檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務,如果沒有檢測到,則通過推送sdk自行創(chuàng)建推送服務。
[0013]進一步地,所述方法還包括:每隔10分鐘檢測一次維護長連接的推送服務是否還存活,如果已經(jīng)被殺掉,則重新啟動推送服務維護長連接。
[0014]進一步地,所述方法還包括:檢測系統(tǒng)卸載廣播,這樣,當應用被卸載時,可以收到相應廣播,如果發(fā)現(xiàn)被卸載的app為維護長連接的app,則在終端設(shè)備中重新創(chuàng)建推送服務。
[0015]進一步地,所述方法還包括:推送服務接收到應用上傳的消息后,根據(jù)保存的所述應用的注冊信息,將所述消息上傳至推送服務器,并在上傳的消息中包含應用的注冊信息。
[0016]本發(fā)明提供的上述方案中,通過推送服務(下文中也稱作service)這一獨立的系統(tǒng)服務,創(chuàng)建并維護與推送服務器的長連接;然后終端設(shè)備中的所有需要接收推送消息的app均可共享這一長連接;推送服務從該長連接接收到推送服務器發(fā)送給app的推送消息時,根據(jù)預先保存的app的注冊信息,將該推送消息發(fā)送給相應的app。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明通過service與服務器之間創(chuàng)建的唯一的長連接,所有的推送消息統(tǒng)一由這條連接與服務器通訊,如此,服務器的壓力就會極大地減輕,同時,由于所有app均可共享這一長連接,而無需每個app與推送服務器之間單獨創(chuàng)建長連接,因而對終端設(shè)備的功耗影響也大大降低。
[0018]與上述推送服務實現(xiàn)方法相對應,本發(fā)明還提供一種推送服務實現(xiàn)裝置,該裝置包括推送服務客戶端,所述推送服務客戶端包括:
[0019]第一連接模塊,用于創(chuàng)建推送服務,以創(chuàng)建并維護與推送服務器的長連接,以及,與多個需要接收推送消息的應用通訊;
[0020]第一注冊模塊,用于保存所述多個需要接收推送消息的應用的注冊信息;
[0021 ]第一收發(fā)模塊,用于接收所述推送服務器推送給應用的消息;并根據(jù)所述第一注冊模塊保存的所述應用的注冊信息,將接收到的所述推送服務器推送給應用的消息發(fā)送至相應的應用。
[0022]本發(fā)明還提供一種推送服務實現(xiàn)裝置,該裝置包括推送sdk,所述推送sdk包括:
[0023]啟用模塊,用于檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務,如果未能檢測到,則啟用第二連接模塊;
[0024]第二連接模塊,用于創(chuàng)建推送服務,以創(chuàng)建并維護與推送服務器的長連接,以及,與多個需要接收推送消息的應用通訊;
[0025]第二注冊模塊,用于保存所述多個需要接收推送消息的應用的注冊信息;
[0026]第二收發(fā)模塊,用于接收所述推送服務器推送給應用的消息;并根據(jù)所述第二注冊模塊保存的所述應用的注冊信息,將接收到的所述推送服務器推送給應用的消息發(fā)送至相應的應用。
[0027]所述啟用模塊還用于,在檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務之前,先檢測所述終端設(shè)備中是否存在推送服務客戶端:
[0028]如果檢測到所述終端設(shè)備中存在推送服務客戶端,則請求啟用所述第一連接模塊創(chuàng)建并維護的長連接;
[0029]如果未能檢測到所述終端設(shè)備中存在推送服務客戶端,則再檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務。
[0030]進一步地,所述啟用模塊用于,通過檢測系統(tǒng)中是否存在推送服務客戶端的應用,來檢測所述終端設(shè)備中是否存在推送服務客戶端;
[0031]通過獲取運行中服務列表,匹配服務名稱是否為運行維護長連接的推送服務,來檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務。
[0032]進一步地,所述啟用模塊還用于,定期檢測維護長連接的推送服務是否還存活,如果已經(jīng)被殺掉,則重新請求啟用所述第一連接模塊;或者,重新請求啟用所述第二連接模塊。
[0033]進一步地,所述啟用模塊還用于,檢測系統(tǒng)卸載廣播,如果發(fā)現(xiàn)維護長連接的推送服務的應用被卸載,則重新請求啟用所述第一連接模塊;或者,重新請求啟用所述第二連接模塊。
[0034]進一步地,所述第一收發(fā)模塊還用于,接收應用上傳的消息;以及,將所述消息上傳至推送服務器,并根據(jù)所述第一注冊模塊保存的所述應用的注冊信息,在上傳的消息中包含所述應用的信息。
[0035]進一步地,所述第二收發(fā)模塊還用于,接收應用上傳的消息;以及,將所述消息上傳至推送服務器,并根據(jù)所述第二注冊模塊保存的所述應用的注冊信息,在上傳的消息中包含所述應用的信息。
[0036]本發(fā)明還提供一種推送服務實現(xiàn)終端設(shè)備,所述終端設(shè)備包括如上所述的推送服務實現(xiàn)裝置,具體地,可以包括上述的推送服務客戶端,和推送sdk中的其中一種或其任意組合。
[0037]本發(fā)明還提供一種推送服務實現(xiàn)系統(tǒng),包括如上所述的推送服務實現(xiàn)裝置,以及推送服務器。
[0038]與現(xiàn)有技術(shù)相比,本發(fā)明通過service與服務器之間創(chuàng)建的唯一的長連接,所有的推送消息統(tǒng)一由這條連接與推送服務器通訊,如此,推送服務器的壓力就會極大地減輕,同時,由于所有app均可共享這一長連接,而無需每個app與推送服務器之間單獨創(chuàng)建長連接,因而對終端設(shè)備的功耗影響也大大降低。
【附圖說明】
[0039]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0040]圖1為本發(fā)明推送服務實現(xiàn)方法實施例一的流程圖;
[0041 ]圖2為本發(fā)明推送服務實現(xiàn)方法實施例二的流程圖;
[0042]圖3是本發(fā)明推送服務實現(xiàn)方法實施例三的流程圖;
[0043]圖4為本發(fā)明推送服務實現(xiàn)裝置實施例一的結(jié)構(gòu)示意圖;
[0044]圖5為本發(fā)明推送服務實現(xiàn)裝置實施例二的結(jié)構(gòu)示意圖;
[0045]圖6為本發(fā)明推送服務實現(xiàn)裝置實施例三的結(jié)構(gòu)示意圖;
[0046]圖7為本發(fā)明推送服務實現(xiàn)系統(tǒng)實施例一的結(jié)構(gòu)示意圖。
【具體實施方式】
[0047]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0048]圖1為本發(fā)明推送服務實現(xiàn)方法實施例一的流程圖,如圖1所示,本實施例的方法可以包括:
[0049]步驟101、在終端設(shè)備中內(nèi)置推送服務客戶端,創(chuàng)建推送服務;
[0050]本實施例中,如果是樂視終端設(shè)備,例如樂視手機、樂視pad、樂視智能電視等,系統(tǒng)中會內(nèi)置一個客戶端應用,該客戶端應用可以稱作StvPush app,用于創(chuàng)建推送服務(service)。
[0051]步驟102、推送服務創(chuàng)建與推送服務器的長連接;
[0052]StvPush app中會創(chuàng)建一個service,負責維護長連接及與需要接收推送消息的app之間通訊。
[0053]步驟103、推送服務保存終端設(shè)備中多個需要接收推送消息的app的注冊信息;
[0054]其中,service在被創(chuàng)建時,會維護與推送服務器的長連接,并保存所有注冊成功的app信息。
[0055]步驟104、推送服務接收到推送服務器推送給app的消息;
[0056]其中,推送服務器推送的消息都會攜帶要推送到app的信息。
[0057]步驟105、推送服務根據(jù)保存的app的注冊信息,將消息發(fā)送給相應的app。
[0058]其中,Service根據(jù)推送服務器推送的消息中包含的a卯的信息,從已注冊的app中,確定目標app,將推送消息發(fā)送給該目標app。
[0059]本實施例,通過在終端設(shè)備(如樂視手機、樂視pad、樂視智能電視等)系統(tǒng)中內(nèi)置一個StvPush app,創(chuàng)建推送服務(service),service是一個獨立的系統(tǒng)服務,創(chuàng)建并維護與推送服務器的長連接;然后終端設(shè)備中的所有需要接收推送消息的app均可共享這一長連接;推送服務從該長連接接收到推送服務器發(fā)送的推送消息時,根據(jù)預先保存的app的注冊信息(例如對應關(guān)系等),將該消息發(fā)送給相應的app。
[0060]與現(xiàn)有技術(shù)相比,本發(fā)明通過service與服務器之間創(chuàng)建的唯一的長連接,所有的推送消息統(tǒng)一由這條連接與推送服務器通訊,如此,推送服務器的壓力就會極大地減輕,同時,由于所有app均可共享這一長連接,而無需每個app與推送服務器之間單獨創(chuàng)建長連接,因而對終端設(shè)備的功耗影響也大大降低。
[0061]圖2為本發(fā)明推送服務實現(xiàn)方法實施例二的流程圖,如圖2所示,本實施例的方法可以包括:
[0062]步驟201、在終端設(shè)備中集成推送sdk,創(chuàng)建推送服務;
[0063]本實施例中,如果是其他第三方終端設(shè)備,則可以在終端設(shè)備中集成推送sdk(本文中也稱作PushSDK),用于創(chuàng)建推送服務(service)。由推送sdk負責app的接口調(diào)用及與service 通訊。
[0064]步驟202、推送服務創(chuàng)建與推送服務器的長連接;
[0065]service負責維護長連接,以及負責app的接口調(diào)用及與需要接收推送的app之間通訊。
[0066]步驟203、推送服務保存終端設(shè)備中多個需要接收推送消息的app的注冊信息;
[0067]其中,service在被創(chuàng)建時,會維護與推送服務器的長連接,并保存所有注冊成功的app信息。
[0068]步驟204、推送服務接收到推送服務器推送給app的消息。
[0069]步驟205、推送服務根據(jù)保存的app的注冊信息,將消息發(fā)送至相應的app。
[0070]本實施例與前述實施例一的區(qū)別在于,如果是非樂視設(shè)備,或者終端設(shè)備中不存在內(nèi)置的StvPush app,則通過集成推送sdk來創(chuàng)建service,實現(xiàn)本發(fā)明的推送服務功能。[0071 ]與現(xiàn)有技術(shù)相比,本發(fā)明通過集成推送sdk創(chuàng)建service,并與推送服務器之間創(chuàng)建唯一的長連接,所有的推送消息統(tǒng)一由這條連接與推送服務器通訊,如此,推送服務器的壓力就會極大地減輕,同時,由于所有app均可共享這一長連接,而無需每個app與推送服務器之間單獨創(chuàng)建長連接,因而對終端設(shè)備的功耗影響也大大降低。
[0072]圖3為本發(fā)明實施例三的推送服務實現(xiàn)方法的流程圖,該實現(xiàn)方法為圖1和圖2的技術(shù)方案的結(jié)合。
[0073]下面結(jié)合圖3所示的流程,對本發(fā)明推送服務實現(xiàn)方法實施例的技術(shù)方案進行更詳細的說明。
[0074]如圖3所示,本發(fā)明實施例三的推送服務實現(xiàn)方法,包括如下主要步驟:
[0075]步驟301:系統(tǒng)app啟動。
[0076]步驟302:檢測是否存在推送app(Push app)。
[0077]具體地,可以通過根據(jù)包名,用PackageManager來檢查系統(tǒng)中是否有該包名的應用。
[0078]步驟303:如果推送app不存在,則檢測是否有運行維護長連接的service。
[0079]具體地,可以通過ActivityManager獲取運行中服務列表,匹配服務名稱來檢測是否為運行長連接的service。
[0080]步驟304:如果沒有運行維護長連接的service,則自己啟動維護長連接的Service0
[0081 ] 步驟305:如果步驟302存在推送app,或者步驟303有維護長連接的service,則使用該service。
[0082]步驟306:檢測系統(tǒng)卸載廣播,當發(fā)現(xiàn)被卸載的app為維護長連接的app時,重復步驟302。
[0083]具體地,通過注冊軟件卸載廣播,可以使得軟件卸載時能夠接收到系統(tǒng)發(fā)送的廣播。
[0084]步驟307:判斷是否為維護長連接的service,如果是重復步驟303。
[0085]步驟308:定期檢測維護長連接的service是否存活,如果沒有存活,則重復304。
[0086]如果是非樂視設(shè)備,或者由于其他一些原因,service有可能被殺掉,所以,針對非樂視設(shè)備,可以每隔10分鐘檢測一次是否維護長連接的service還存活,如果已經(jīng)被殺掉則啟動自身的s er V i c e維護長連接。
[0087]本實施例,如果是樂視的設(shè)備,系統(tǒng)中會內(nèi)置一個StvPush app,該StvPush app會創(chuàng)建一個service負責維護長連接及與需要接收推送的app之間通訊。如果非樂視設(shè)備,貝Ij通過集成的推送sdk創(chuàng)建一個service維護長連接及與需要接收推送消息的app之間通訊。
[0088]通過本發(fā)明這種單設(shè)備單連接策略,實現(xiàn)了每個終端設(shè)備只需維護一條與服務器的Socket長連接,服務器端推送的消息都通過這條Socket長連接傳遞給相應的app,app上傳的消息也通過這條Socket長連接傳遞到服務器端,因此,既減輕了終端設(shè)備的功耗,也減輕了服務器的壓力。
[0089]圖4為本發(fā)明推送服務實現(xiàn)裝置實施例一的結(jié)構(gòu)示意圖,如圖4所示,本實施例的推送服務實現(xiàn)裝置包括推送服務客戶端,該推送服務客戶端可以包括:
[0090]第一連接模塊,用于創(chuàng)建推送服務,以創(chuàng)建并維護與推送服務器的長連接,以及,與多個需要接收推送消息的app通訊;
[0091]第一注冊模塊,用于保存所述多個需要接收推送消息的app的注冊信息;
[0092]第一收發(fā)模塊,用于接收推送服務器推送給app的消息;并根據(jù)所述注冊模塊保存的所述app的注冊信息,將接收到的所述推送服務器推送給app的消息發(fā)送至相應的app。
[0093]此外,所述第一收發(fā)模塊還用于,接收app上傳的消息;并將所述消息上傳至推送服務器,并且,根據(jù)所述第一注冊模塊保存的所述app的注冊信息,在上傳的消息中包含所述app的信息。
[0094]本實施例的裝置,可以用于執(zhí)行圖1所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0095]圖5為本發(fā)明推送服務實現(xiàn)裝置實施例二的結(jié)構(gòu)示意圖,如圖5所示,本實施例的推送服務實現(xiàn)裝置可以包括推送sdk,所述推送sdk包括:
[0096]啟用模塊,用于檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務,如果未能檢測到,則啟用第二連接模塊;
[0097]第二連接模塊,用于創(chuàng)建推送服務,以創(chuàng)建并維護與推送服務器的長連接,以及,與多個需要接收推送消息的app通訊;
[0098]第二注冊模塊,用于保存所述多個需要接收推送消息的app的注冊信息;
[0099]第二收發(fā)模塊,用于接收推送服務器的推送消息,并根據(jù)所述注冊模塊保存的所述app的注冊信息,將接收到的所述推送服務器推送給app的消息發(fā)送至相應的app。
[0?00] 進一步地,所述啟用模塊用于,通過Acti vityManager獲取運行中服務列表,匹配服務名稱是否為運行維護長連接的推送服務,來檢測終端設(shè)備中是否存在正在運行的維護長連接的推送服務。
[0101]進一步地,所述啟用模塊還用于,定期檢測維護長連接的推送服務是否還存活,如果已經(jīng)被殺掉,則重新請求啟用所述第二連接模塊。
[0102]進一步地,所述啟用模塊還用于,檢測系統(tǒng)卸載廣播,如果發(fā)現(xiàn)維護長連接的推送服務的應用被卸載,則重新請求啟用所述第二連接模塊。
[0103]進一步地,所述第二收發(fā)模塊還用于,接收app上傳的消息;將所述消息上傳至推送服務器,并根據(jù)所述第二注冊模塊保存的所述app的注冊信息,在上傳的消息中包含所述app的信息。
[0104]本實施例的裝置,可以用于執(zhí)行圖2所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0105]圖6為本發(fā)明推送服務實現(xiàn)裝置實施例三的結(jié)構(gòu)示意圖,如圖6所示,本實施例的推送服務實現(xiàn)裝置包括:推送服務客戶端,和推送sdk,其中,推送服務客戶端可以采用圖4裝置實施例的結(jié)構(gòu),推送sdk可以采用圖5推送sdk實施例的結(jié)構(gòu)。
[0106]本實施例中的推送sdk與前述裝置實施例二的區(qū)別在于,所述啟用模塊還用于,在檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務之前,先檢測所述終端設(shè)備中是否存在推送服務客戶端:
[0107]如果檢測到所述終端設(shè)備中存在推送服務客戶端,則請求啟用所述第一連接模塊創(chuàng)建并維護的長連接;
[0108]進一步地,所述啟用模塊還用于,在檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務之前,先檢測所述終端設(shè)備中是否存在推送服務客戶端:
[0109]如果檢測到所述終端設(shè)備中存在推送服務客戶端,則請求啟用所述第一連接模塊創(chuàng)建并維護的長連接;
[0110]如果未能檢測到所述終端設(shè)備中存在推送服務客戶端,則再檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務。
[O111 ]進一步地,所述啟用模塊用于,通過PackageManager檢測系統(tǒng)中是否存在推送服務客戶端的應用,來檢測所述終端設(shè)備中是否存在推送服務客戶端。
[0112]進一步地,所述啟用模塊還用于,定期檢測維護長連接的推送服務是否還存活,如果已經(jīng)被殺掉,則重新請求啟用所述第一連接模塊;或者,重新請求啟用所述第二連接模塊。
[0113]進一步地,所述啟用模塊還用于,檢測系統(tǒng)卸載廣播,如果發(fā)現(xiàn)維護長連接的推送服務的應用被卸載,則重新請求啟用所述第一連接模塊;或者,重新請求啟用所述第二連接豐旲塊。
[0114]對應地,本實施例的推送服務實現(xiàn)裝置可以執(zhí)行圖1?圖3中任一方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0115]本發(fā)明還提供一種推送服務實現(xiàn)終端設(shè)備及系統(tǒng),本實施例的推送服務實現(xiàn)終端設(shè)備包括:推送服務客戶端,或者推送sdk,或者二者的結(jié)合。
[0116]如圖7所示,本發(fā)明實施例的推送服務實現(xiàn)系統(tǒng),包括上述的推送服務實現(xiàn)裝置,以及推送服務器。其中,推送服務實現(xiàn)裝置可以采用如圖4、圖5或圖6中的結(jié)構(gòu)。請見圖7,推送服務實現(xiàn)裝置與推送服務器之間具有唯一的長連接,終端設(shè)備中所有需要接收推送消息的app均可共享該長連接。
[0117]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0118]以上所描述的裝置實施例僅僅是示意性的,其中作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到至少兩個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
[0119]最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【主權(quán)項】
1.一種推送服務實現(xiàn)方法,其特征在于,在終端設(shè)備中創(chuàng)建推送服務,所述方法包括: 推送服務創(chuàng)建與推送服務器的長連接; 所述推送服務保存所述終端設(shè)備中多個需要接收推送消息的應用的注冊信息; 所述推送服務通過所述長連接接收到所述推送服務器推送給應用的消息后,根據(jù)保存的所述應用的注冊信息,將所述消息發(fā)送至相應的應用。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在終端設(shè)備中創(chuàng)建推送服務,包括: 在所述終端設(shè)備中內(nèi)置推送服務客戶端,由所述推送服務客戶端創(chuàng)建所述推送服務。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法包括: 檢測所述終端設(shè)備中是否存在推送服務客戶端; 如果檢測到所述終端設(shè)備中存在推送服務客戶端,則使用所述推送服務客戶端創(chuàng)建的推送服務。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在終端設(shè)備中創(chuàng)建推送服務,還包括: 如果未能檢測到所述終端設(shè)備中存在推送服務客戶端,或者未能檢測到所述終端設(shè)備中存在正在運行的維護長連接的推送服務,則通過推送軟件開發(fā)工具包創(chuàng)建推送服務。5.根據(jù)權(quán)利要求4所述的方法,其特征在于, 通過獲取運行中服務列表,匹配服務名稱是否為運行維護長連接的推送服務,來檢測終端設(shè)備中是否存在正在運行的維護長連接的推送服務。6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括: 定期檢測維護長連接的推送服務是否還存活,如果已經(jīng)被殺掉,則重新啟動維護長連接的推送服務,并創(chuàng)建與推送服務器的長連接。7.根據(jù)權(quán)利要求1至6之任一項所述的方法,其特征在于,所述方法還包括: 檢測系統(tǒng)卸載廣播,如果發(fā)現(xiàn)維護長連接的推送服務的應用被卸載,則在所述終端設(shè)備中重新創(chuàng)建推送服務。8.根據(jù)權(quán)利要求1至6之任一項所述的方法,其特征在于,所述方法還包括: 所述推送服務接收到應用上傳的消息后,根據(jù)保存的所述應用的注冊信息,將所述消息上傳至推送服務器,并在上傳的消息中包含該應用的信息。9.一種推送服務實現(xiàn)裝置,其特征在于,所述裝置包括推送服務客戶端,所述推送服務客戶端包括: 第一連接模塊,用于創(chuàng)建推送服務,以創(chuàng)建并維護與推送服務器的長連接,以及,與多個需要接收推送消息的應用通訊; 第一注冊模塊,用于保存所述多個需要接收推送消息的應用的注冊信息; 第一收發(fā)模塊,用于接收所述推送服務器推送給應用的消息;并根據(jù)所述第一注冊模塊保存的所述應用的注冊信息,將接收到的所述推送服務器推送給應用的消息發(fā)送至相應的應用。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括推送sdk,所述推送sdk包括: 啟用模塊,用于檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務,如果未能檢測到,則啟用第二連接模塊; 第二連接模塊,用于創(chuàng)建推送服務,以創(chuàng)建并維護與推送服務器的長連接,以及,與多個需要接收推送消息的應用通訊; 第二注冊模塊,用于保存所述多個需要接收推送消息的應用的注冊信息; 第二收發(fā)模塊,用于接收所述推送服務器推送給應用的消息;并根據(jù)所述第二注冊模塊保存的所述應用的注冊信息,將接收到的所述推送服務器推送給應用的消息發(fā)送至相應的應用。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于, 所述啟用模塊還用于,在檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務之前,先檢測所述終端設(shè)備中是否存在推送服務客戶端: 如果檢測到所述終端設(shè)備中存在推送服務客戶端,則請求啟用所述第一連接模塊創(chuàng)建并維護的長連接; 如果未能檢測到所述終端設(shè)備中存在推送服務客戶端,則再檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于, 所述啟用模塊用于,通過檢測系統(tǒng)中是否存在推送服務客戶端的應用,來檢測所述終端設(shè)備中是否存在推送服務客戶端; 通過獲取運行中服務列表,匹配服務名稱是否為運行維護長連接的推送服務,來檢測所述終端設(shè)備中是否存在正在運行的維護長連接的推送服務。13.根據(jù)權(quán)利要求11所述的裝置,其特征在于, 所述啟用模塊還用于,定期檢測維護長連接的推送服務是否還存活,如果已經(jīng)被殺掉,則重新請求啟用所述第一連接模塊;或者,重新請求啟用所述第二連接模塊。14.根據(jù)權(quán)利要求13所述的裝置,其特征在于, 所述啟用模塊還用于,檢測系統(tǒng)卸載廣播,如果發(fā)現(xiàn)維護長連接的推送服務的應用被卸載,則重新請求啟用所述第一連接模塊;或者,重新請求啟用所述第二連接模塊。15.根據(jù)權(quán)利要求9至14之任一項所述的裝置,其特征在于, 所述第一收發(fā)模塊還用于,接收應用上傳的消息;以及,將所述消息上傳至推送服務器,并根據(jù)所述第一注冊模塊保存的所述應用的注冊信息,在上傳的消息中包含所述應用的信息。16.根據(jù)權(quán)利要求10至14之任一項所述的裝置,其特征在于, 所述第二收發(fā)模塊還用于,接收應用上傳的消息;以及,將所述消息上傳至推送服務器,并根據(jù)所述第二注冊模塊保存的所述應用的注冊信息,在上傳的消息中包含所述應用的信息。17.—種推送服務實現(xiàn)終端設(shè)備,其特征在于,所述終端設(shè)備包括如權(quán)利要求9至15之任一項所述的推送服務客戶端、和/或如權(quán)利要求10至16之任一項所述的推送sdk。18.—種推送服務實現(xiàn)系統(tǒng),其特征在于,所述系統(tǒng)包括推送服務器,以及如權(quán)利要求9至16之任一項所述的推送服務實現(xiàn)裝置。
【文檔編號】H04L29/08GK105871981SQ201510864025
【公開日】2016年8月17日
【申請日】2015年11月30日
【發(fā)明人】李兵兵
【申請人】樂視致新電子科技(天津)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1