本發(fā)明涉及通信領域,具體而言,涉及一種獲取離線消息的到達率的方法、裝置及系統(tǒng)。
背景技術:
:現(xiàn)有技術中,當智能移動終端上的應用程序沒有啟動或者不在前臺運行時,可以通過系統(tǒng)推送的離線消息來告知用戶該應用程序有新消息,如圖1所示,以使用iOS系統(tǒng)的智能手機(如iPhone)為例,對離線消息的推送流程進行說明,該流程可以分為如下三個階段:第一階段:APP服務器101’把要發(fā)送的離線消息、目標iPhone105’(圖1中僅示出3個以作示例說明)的標識信息打包,然后將數(shù)據(jù)包發(fā)送給APNS103’。第二階段:APNS將在自身的已注冊推送服務的iPhone列表中,查找有相應標識的iPhone,并把離線消息發(fā)到該iPhone。第三階段:iPhone把發(fā)來的離線消息傳遞給相應的APP,并按照系統(tǒng)設置彈出推送通知。為了衡量推送系統(tǒng)(如圖1中的APNS)推送離線消息的穩(wěn)定性和可用性是否滿足應用程序提供商的需求,需要統(tǒng)計離線消息的到達率。其中,統(tǒng)計到達率分別需要統(tǒng)計服務器端一共發(fā)送了多少離線消息,以及客戶端一共接收到了多少離線消息。從推送流程上看,這兩方面的數(shù)據(jù)都是沒有辦法準確獲取到的,具體理由如下:從服務器的角度來看,推送的離線消息是發(fā)送給APNS的,應用程序服務器只能統(tǒng)計到推送至APNS的離線消息的數(shù)量,而APNS不會反饋消 息給應用程序服務器,以告知服務器其接收到了多少離線消息,因此在推送至APNS的過程中,有可能會有部分離線消息在傳輸過程中丟失;并且推送給APNS不代表真正推送給客戶端,有可能一部分離線消息并沒有推送給客戶端,從而造成從服務器端來統(tǒng)計的離線消息推送總量不夠準確。從客戶端的角度看,客戶端只有在兩種場景下,才能知道收到了一個離線推送:1)、客戶端在前臺運行;2)、客戶端點擊收到的離線消息,打開APP。而在以下3種情況下,客戶端均無法知道其收到了推送的離線消息:1、客戶端收到離線消息,但是用戶從通知欄將推送消息清理掉;2、客戶端收到多條離線消息,但是用戶只點擊其中一條,其他離線消息是沒有辦法獲取到的;3、客戶端收到離線消息,但是用戶直接打開APP,這時候也沒有辦法獲取到離線消息。這樣就造成了客戶端收到的離線推送總量統(tǒng)計不夠準確。綜上所述,因為服務器端統(tǒng)計的離線消息推送總量不夠準確,客戶端統(tǒng)計到的收到的離線推送總量也不夠準確,從而造成離線消息整體的到達率統(tǒng)計不夠準確?,F(xiàn)有技術中,通常采用發(fā)送測試推送包的方式來統(tǒng)計離線消息的到達率。具體地,在用戶通過客戶端的APP上線后,應用程序服務器收到這個用戶的上線消息后,立刻發(fā)送一個測試推送消息,客戶端收到測試推送消息后,立刻上報一個數(shù)據(jù)給服務器,由服務器統(tǒng)計一共發(fā)出多少測試離線消息,以及收到一共收到多少測試離線消息的上報數(shù)據(jù),來統(tǒng)計離線推送的到達率。但是,在上述技術方案中,由于測試推送包和實際離線消息的內(nèi)容、 大小一般都不一樣,從而可能影響推送測試推送包的成功率,進而影響到達率的統(tǒng)計。并且,測試推送包也是基于用戶上線來推送的,只有用戶上線才會向其發(fā)送測試推送包,而這個過程一般是一個平滑的過程,不會再短時間內(nèi)向客戶端推送大量的測試推送包。在這種過程中的網(wǎng)絡狀況和短時間內(nèi)推送大量離線消息的網(wǎng)絡狀況是不一樣的,因此,通過測試推送包也無法準確的反饋在短時間內(nèi)推送大量離線消息的場景下離線消息的到達率。針對上述的問題,目前尚未提出有效的解決方案。技術實現(xiàn)要素:本發(fā)明實施例提供了一種獲取離線消息的到達率的方法、裝置及系統(tǒng),以至少解決現(xiàn)有技術中在短時間內(nèi)推送大量離線消息的場景下,無法準確統(tǒng)計離線消息的到達率的技術問題。根據(jù)本發(fā)明實施例的一個方面,提供了一種獲取離線消息的到達率的方法,包括:在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送離線消息的推送時間;根據(jù)向每個目標客戶端推送離線消息的推送時間和預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間;統(tǒng)計每個時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶端的第一數(shù)量,以及每個時間區(qū)間內(nèi)接收到離線消息返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量;根據(jù)第一數(shù)量和第二數(shù)量計算每個時間區(qū)間內(nèi)離線消息的到達率。根據(jù)本發(fā)明實施例的另一方面,還提供了一種獲取離線消息的到達率的裝置,包括:第一記錄單元,用于在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送離線消息的推送時間;確定單元,用于根據(jù)向每個目標客戶端推送離線消息的推送時間和預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間;統(tǒng)計單元,用于統(tǒng)計每個時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶端 的第一數(shù)量,以及每個時間區(qū)間內(nèi)接收到離線消息返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量;計算單元,用于根據(jù)第一數(shù)量和第二數(shù)量計算每個時間區(qū)間內(nèi)離線消息的到達率。根據(jù)本發(fā)明實施例的另一方面,還提供了一種獲取離線消息的到達率的系統(tǒng),包括:多個目標客戶端,用于每隔預設時間向推送代理服務器發(fā)送在線時間信息;推送代理服務器,與一個或多個目標客戶端通訊,用于在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送離線消息的推送時間,根據(jù)向每個目標客戶端推送離線消息的推送時間和每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間,統(tǒng)計每個時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶端的第一數(shù)量,以及每個時間區(qū)間內(nèi)接收到離線消息返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量,以及根據(jù)第一數(shù)量和第二數(shù)量計算每個時間區(qū)間內(nèi)離線消息的到達率。采用本發(fā)明實施例,在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送該離線消息的推送時間,并根據(jù)預先獲取的每個目標客戶端的在線時間信息和上述記錄的推送時間,確定每個目標客戶端所屬的時間區(qū)間,然后統(tǒng)計每個時間區(qū)間內(nèi)接收到該離線消息的目標客戶端的數(shù)量以及接收到該離線消息并返回響應數(shù)據(jù)的目標客戶端的數(shù)量,以分別計算每個時間區(qū)間對應的該離線消息的到達率。通過本發(fā)明實施例,通過記錄向目標客戶端推送實際離線消息的推送時間,以及預先獲取的目標客戶端的在線時間信息,可以確定目標客戶端的在線狀態(tài);通過記錄的實際離線消息的推送時間和預先獲取的目標客戶端的在線時間信息,將目標客戶端對應到預先劃分的時間區(qū)間內(nèi),并分別統(tǒng)計各個時間區(qū)間內(nèi)對應的離線消息的到達率,可以實現(xiàn)分時間段統(tǒng)計實際離線消息的到達率,無需現(xiàn)有技術中在用戶上線之后才能利用測試推送包估算離線消息的到達率,可以真實地反饋在短時間內(nèi)推送大量離線消息的場景,利用實際離線消息真實、準確地確定離線消息的到達率,不受網(wǎng)絡狀況的影響。通過本發(fā)明實施例,實現(xiàn)了真實、準確地確定離線消息的到達率的技術效 果,進而解決了現(xiàn)有技術中在短時間內(nèi)推送大量離線消息的場景下,無法準確統(tǒng)計離線消息的到達率的技術問題。附圖說明此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:圖1是根據(jù)現(xiàn)有技術的一種離線消息的推送方法的流程圖;圖2是根據(jù)本發(fā)明實施例一的一種用于獲取離線消息的到達率的方法的計算機終端的結構框圖;圖3是根據(jù)本發(fā)明實施例一的一種獲取離線消息的到達率的方法的流程圖;圖4是根據(jù)本發(fā)明實施例二的一種獲取離線消息的到達率的裝置的示意圖;圖5是根據(jù)本發(fā)明實施例二的一種可選的獲取離線消息的到達率的裝置的示意圖;圖6是根據(jù)本發(fā)明實施例二的一種可選的獲取離線消息的到達率的裝置的示意圖;圖7是根據(jù)本發(fā)明實施例二的一種可選的獲取離線消息的到達率的裝置的示意圖;圖8是根據(jù)本發(fā)明實施例二的一種可選的獲取離線消息的到達率的裝置的示意圖;圖9是根據(jù)本發(fā)明實施例二的一種可選的獲取離線消息的到達率的裝置的示意圖;圖10是根據(jù)本發(fā)明實施例二的一種可選的獲取離線消息的到達率的 裝置的示意圖;圖11是根據(jù)本發(fā)明實施例三的一種獲取離線消息的到達率的系統(tǒng)的示意圖;圖12是根據(jù)本發(fā)明實施例三的一種可選的獲取離線消息的到達率的系統(tǒng)的示意圖;圖13是根據(jù)本發(fā)明實施例三的一種可選的獲取離線消息的到達率的系統(tǒng)的示意圖;以及圖14是根據(jù)本發(fā)明實施例的一種計算機終端的結構框圖。具體實施方式為了使本
技術領域:
的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產(chǎn)品或設備固有的其它步驟或單元。首先,在對本發(fā)明實施例進行描述的過程中出現(xiàn)的部分名詞或術語適用于如下解釋:APP:Application,中文名稱為應用程序,指的是智能移動終端的第 三方應用程序。離線消息:也被稱為遠程通知,是當應用程序沒有啟動或者不在前臺運行時,告訴用戶有新消息的一種途徑。一般情況下,當應用程序顯示新消息或者下載數(shù)據(jù)的時候,離線消息由遠程服務器(即應用程序服務器)發(fā)送,然后通過推送通知服務的服務器推送至客戶端,最終通知客戶端的應用程序。心跳包:是在客戶端和服務器之間定時通知對方自己狀態(tài)(在線)的一個自定義的命令字,按照一定的時間間隔發(fā)送,類似于心跳,所以稱為心跳包。在本發(fā)明實施例中,心跳時間指的是服務器接收到客戶端發(fā)送的心跳包的時間。APNS:ApplePushNotificationService,中文名稱為蘋果推送通知服務,是由蘋果公司提供的向使用iOS系統(tǒng)的客戶端提供離線消息推送通知的服務總稱。依托于一個或幾個iOS系統(tǒng)常駐進程運作,是全局的,可看作是獨立于應用程序之外,而且是客戶端和蘋果服務器之間的通訊,而非應用程序的提供商服務器。離線消息的到達率:是指客戶端接收到的離線消息的總量與應用程序的推送服務器(即上述的提供商服務器)推送的離線消息的總量的比值。iOS系統(tǒng):是蘋果公司開發(fā)的移動操作系統(tǒng)。ID:Identification,中文名稱為身份標識號。UserID:即用戶ID,用來唯一標識用戶,例如QQ號碼。實施例1本發(fā)明實施例一所提供的方法實施例可以在移動終端、計算機終端或者類似的運算裝置中執(zhí)行。以運行在計算機終端上為例,圖2是根據(jù)本發(fā)明實施例一的一種用于獲取離線消息的到達率的方法的計算機終端的結構框圖。如圖2所示,用于獲取離線消息的到達率的方法的計算機終端20 可以包括一個或多個(圖中僅示出一個)處理器202(處理器202可以包括但不限于微處理器MCU或可編程邏輯器件FPGA等的處理裝置)、用于存儲數(shù)據(jù)的存儲器204、以及用于通信功能的傳輸裝置206。本領域普通技術人員可以理解,圖2所示的結構僅為示意,其并不對上述電子裝置的結構造成限定。例如,計算機終端20還可包括比圖2中所示更多或者更少的組件,或者具有與圖2所示不同的配置。存儲器204可用于存儲應用程序軟件的軟件程序以及模塊,如本發(fā)明實施例中的獲取離線消息的到達率的方法對應的程序指令/模塊,處理器202通過運行存儲在存儲器204內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應用以及數(shù)據(jù)處理,即實現(xiàn)上述的獲取離線消息的到達率的方法。存儲器204可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器204可進一步包括相對于處理器202遠程設置的存儲器,這些遠程存儲器可以通過網(wǎng)絡連接至計算機終端20。上述網(wǎng)絡的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。傳輸裝置206用于經(jīng)由一個網(wǎng)絡接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡具體實例可包括計算機終端20的通信供應商提供的無線網(wǎng)絡。在一個實例中,傳輸裝置206包括一個網(wǎng)絡適配器(NetworkInterfaceController,NIC),其可通過基站與其他網(wǎng)絡設備相連從而可與互聯(lián)網(wǎng)進行通訊。在一個實例中,傳輸裝置206可以為射頻(RadioFrequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進行通訊。在上述運行環(huán)境下,本發(fā)明提供了如圖3所示的獲取離線消息的到達率的方法。圖3是根據(jù)本發(fā)明實施例一的一種獲取離線消息的到達率的方法的流程圖,該方法可以包括如下步驟:步驟S31,在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送離線消息的推送時間。在一個可選的實施例中,對于每一個離線消息,在目標客戶端的推送 代理服務器檢測到已經(jīng)將離線消息推送至多個目標客戶端之后,目標客戶端的推送代理服務器記錄其向每個目標客戶端推送該離線消息的推送時間。在上述步驟S31中,目標客戶端的推送代理服務器可以將向每個目標客戶端推送該離線消息的推送時間記錄到數(shù)據(jù)表中。可選地,目標客戶端可以為智能手機、平板電腦等移動終端上安裝的應用程序客戶端;離線消息可以為某個應用程序客戶端對應的一條信息、一項即將到期的日程或者應用程序客戶端的遠程服務器上的新數(shù)據(jù)。需要說明的是,在上述步驟S31中,目標客戶端的推送代理服務器完成向目標客戶端推送該離線消息的操作之后,即可檢測到該離線消息推送至目標客戶端成功,但是,此時并不代表著目標客戶端已經(jīng)成功接收到了該離線消息。例如,以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。當騰訊新聞APP的遠程服務器上有了一條新的時事新聞時,無論目標iPhone上的騰訊新聞APP是否啟動或者在前臺運行,為了及時使用戶了解到該時事新聞,需要向iPhone上的騰訊新聞APP發(fā)送一條離線消息以提示用戶其騰訊新聞APP有一條新信息。此時,騰訊新聞APP的遠程服務器將該離線消息和目標iPhone的標識信息(如iPhone的設備ID)打包成數(shù)據(jù)包發(fā)送給騰訊新聞APP的推送代理服務器,騰訊新聞APP的推送代理服務器將該數(shù)據(jù)包發(fā)送至APNS,然后由APNS按照目標iPhone的設備ID將該離線消息發(fā)送到目標iPhone。在上述例子中,當騰訊新聞APP的推送代理服務器將該數(shù)據(jù)包發(fā)送至APNS時,即可檢測到該離線消息推送至多個目標客戶端成功,此時,騰訊新聞APP的推送代理服務器記錄每個目標iPhone上的騰訊新聞APP的標識信息(如UserID)以及推送該離線消息的推送時間(如push_time)。步驟S33,根據(jù)向每個目標客戶端推送離線消息的推送時間和預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū) 間??蛇x地,對于每一個離線消息,在目標客戶端的推送代理服務器檢測到離線消息推送至多個目標客戶端成功之后,對于該多個目標客戶端中的任意一個目標客戶端,目標客戶端的推送代理服務器根據(jù)記錄的向該目標客戶端推送離線消息的推送時間,以及預先獲取的該目標客戶端的在線時間信息,將該目標客戶端對應到多個預先劃分的時間區(qū)間中的一個時間區(qū)間內(nèi),以便分時間段統(tǒng)計離線消息的到達率。在一個可選的實施例中,目標客戶端的在線時間信息可以預先緩存在目標客戶端的推送代理服務器上。目標客戶端的在線時間信息可以通過心跳機制獲得。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。在騰訊新聞APP的推送代理服務器記錄每個目標iPhone上騰訊新聞APP的標識信息(如UserID)以及推送該離線消息的推送時間(如push_time)之后,對于任意一個目標iPhone,騰訊新聞APP的推送代理服務器根據(jù)上述記錄的向該目標iPhone推送該離線消息的推送時間push_time以及預先緩存在騰訊新聞APP的推送代理服務器上該目標iPhone上騰訊新聞APP的在線時間信息,確定該目標iPhone上騰訊新聞APP所屬的時間區(qū)間,以便后續(xù)分時間段統(tǒng)計離線消息的到達率。通過本發(fā)明上述實施例,通過目標客戶端推送該離線消息的推送時間和該目標客戶端的在線時間信息,可以判斷在推送該離線消息時目標客戶端是否在線(如,目標客戶端在前臺運行),并且,通過預先劃分的多個時間區(qū)間,可以分別統(tǒng)計不同在線狀態(tài)的目標客戶端的離線消息到達率,以實現(xiàn)利用實際離線消息、分時間段統(tǒng)計離線消息的到達率,從而解決了現(xiàn)有技術中只能在用戶上線之后發(fā)送與實際離線消息不一致的測試推送包導致統(tǒng)計離線消息到達率不準確的問題。步驟S35,統(tǒng)計每個時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶 端的第一數(shù)量,以及每個時間區(qū)間內(nèi)接收到離線消息返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量。具體地,在確定每個目標客戶端所屬的時間區(qū)間之后,目標客戶端的推送代理服務器分別統(tǒng)計每個時間區(qū)間內(nèi)接收到離線消息的目標客戶端的第一數(shù)量以及接收到該離線消息并返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量??蛇x地,在目標客戶端所在的智能終端接收到該離線消息之后,該智能終端向目標客戶端的推送代理服務器返回響應數(shù)據(jù),以告知目標客戶端的推送代理服務器該智能終端成功接收到了該離線消息,同時,該智能終端將接收到的離線消息傳遞至目標客戶端。在一個可選的實施例中,接收到離線消息的目標客戶端指的是目標客戶端的推送代理服務器向其發(fā)送了離線消息的客戶端,而不代表接收到離線消息的目標客戶端會返回響應數(shù)據(jù)。具體地,接收到離線消息的目標客戶端可以將該離線消息顯示在目標客戶端所在的智能終端的通知欄或者在目標客戶端的圖標上顯示數(shù)字提示消息,同時,該智能終端還可以播放警告音以提示用戶。一旦用戶注意到目標客戶端有新的信息、時間或者數(shù)據(jù),用戶可以點擊該離線消息以運行目標客戶端并訪問新的內(nèi)容。用戶也可以選擇忽略該離線消息,并將其從通知欄中清除,此時目標客戶端不會被激活。需要說明的是,無論用戶是否打開該離線消息,只要智能終端接收到了該離線消息,都將向目標客戶端的推送代理服務器返回響應于該離線消息的響應數(shù)據(jù)。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。在騰訊新聞APP的推送代理服務器通過APNS將該離線消息推送至目標iPhone之后,成功接收到該離線消息的目標iPhone將返回響應數(shù)據(jù)至騰訊新聞APP的推送代理服務器,騰訊新聞APP的推 送代理服務器會統(tǒng)計并記錄返回了響應數(shù)據(jù)的騰訊新聞APP的UserID。在騰訊新聞APP的推送代理服務器確定所有目標iPhone上騰訊新聞APP所屬的時間區(qū)間之后,分別統(tǒng)計每個時間區(qū)間內(nèi)對應的騰訊新聞APP的數(shù)量(如利用UserID進行統(tǒng)計),以及每個時間區(qū)間內(nèi)返回響應數(shù)據(jù)的騰訊新聞APP的數(shù)量。步驟S37,根據(jù)第一數(shù)量和第二數(shù)量計算每個時間區(qū)間內(nèi)離線消息的到達率??蛇x地,對于任意一個時間區(qū)間,根據(jù)該時間區(qū)間對應的接收到離線消息的目標客戶端的第一數(shù)量和接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量,確定該時間區(qū)間內(nèi)該離線消息所對應的到達率。在一個可選的實施例中,對于任意一個離線消息、任意一個時間區(qū)間,可以將第一數(shù)量與第二數(shù)量的比值作為該時間區(qū)間內(nèi)該離線消息的到達率。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。在騰訊新聞APP的推送代理服務器統(tǒng)計完成所有時間區(qū)間內(nèi)對應的騰訊新聞APP的數(shù)量(即上述實施例中的第一數(shù)量),以及所有時間區(qū)間內(nèi)返回響應數(shù)據(jù)的騰訊新聞APP的數(shù)量(即上述實施例中的第二數(shù)量)之后,對于每一個時間區(qū)間,計算其對應的第二數(shù)量與第一數(shù)量的比值作為該時間區(qū)間的離線消息到達率。采用本發(fā)明實施例,在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送該離線消息的推送時間,并根據(jù)預先獲取的每個目標客戶端的在線時間信息和上述記錄的推送時間,確定每個目標客戶端所屬的時間區(qū)間,然后統(tǒng)計每個時間區(qū)間內(nèi)接收到該離線消息的目標客戶端的數(shù)量以及接收到該離線消息并返回響應數(shù)據(jù)的目標客戶端的數(shù)量,以分別計算每個時間區(qū)間對應的該離線消息的到達率。通過本發(fā)明實施例,通過記錄向目標客戶端推送實際離線消息的推送時間,以及預先 獲取的目標客戶端的在線時間信息,可以確定目標客戶端的在線狀態(tài);通過記錄的實際離線消息的推送時間和預先獲取的目標客戶端的在線時間信息,將目標客戶端對應到預先劃分的時間區(qū)間內(nèi),并分別統(tǒng)計各個時間區(qū)間內(nèi)對應的離線消息的到達率,可以實現(xiàn)分時間段統(tǒng)計實際離線消息的到達率,無需現(xiàn)有技術中在用戶上線之后才能利用測試推送包估算離線消息的到達率,可以真實地反饋在短時間內(nèi)推送大量離線消息的場景,利用實際離線消息真實、準確地確定離線消息的到達率,不受網(wǎng)絡狀況的影響。通過本發(fā)明實施例,實現(xiàn)了真實、準確地確定離線消息的到達率的技術效果,進而解決了現(xiàn)有技術中在短時間內(nèi)推送大量離線消息的場景下,無法準確統(tǒng)計離線消息的到達率的技術問題。根據(jù)本發(fā)明上述實施例,在步驟S33,根據(jù)向每個目標客戶端推送離線消息的推送時間和預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間之前,上述的方法還可以包括如下步驟:步驟S321,接收任意一個目標客戶端每隔預設時間發(fā)送的心跳數(shù)據(jù)包,其中,心跳數(shù)據(jù)包中包括目標客戶端的標識信息和發(fā)送心跳數(shù)據(jù)包的心跳時間。具體地,在根據(jù)向每個目標客戶端推送離線消息的推送時間和預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間之前,首先需要獲取每個目標客戶端的在線時間信息。在一個可選的實施例中,可以通過心跳機制來獲取目標客戶端的在線時間信息。目標客戶端通過每隔預設時間持續(xù)向目標客戶端的在線狀態(tài)管理服務器發(fā)送心跳數(shù)據(jù)包的方式告知服務器其仍然在線。若目標客戶端的在線狀態(tài)管理服務器在一定的時間內(nèi)沒有再接到目標客戶端發(fā)送的心跳數(shù)據(jù)包,則可以認為該目標客戶端離線。可選地,在線狀態(tài)管理服務器將接收到的目標客戶端持續(xù)發(fā)送的心跳數(shù)據(jù)包發(fā)送至目標客戶端的推送代理服務器,該推送代理服務器緩存每個目標客戶端的所有心跳數(shù)據(jù)包。步驟S323,記錄接收到的目標客戶端的所有心跳數(shù)據(jù)包,作為目標客戶端的在線時間信息。具體地,目標客戶端的推送代理服務器記錄每個目標客戶端發(fā)送心跳數(shù)據(jù)包的所有發(fā)送時間,并將其記為該目標客戶端的在線時間信息。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP的應用場景為例,對本發(fā)明上述實施例進行說明。以某一個目標iPhone上的騰訊新聞APP為例,該騰訊新聞APP每間隔預設時間(如30秒)向騰訊新聞APP的在線狀態(tài)管理服務器(如OnlineServer)發(fā)送Hello心跳包,以告知服務器其處于在線狀態(tài),OnlineServer將發(fā)送該Hello心跳包的心跳時間與該騰訊新聞APP的UserID關聯(lián)之后發(fā)送至騰訊新聞APP的推送代理服務器(如iOSPushProxy服務器),iOSPushProxy服務器緩存該騰訊新聞APP每次發(fā)送心跳包的心跳時間與該騰訊新聞APP的UserID,以便后續(xù)確定該騰訊新聞APP的所屬的時間分區(qū)時調(diào)用。在一個可選的實施例中,步驟S31,記錄向每個目標終端推送離線消息的推送時間,可以包括:步驟S311,獲取向任意一個目標客戶端推送離線消息的推送時間。具體地,對于任意一個目標客戶端,獲取向其推送離線消息的推送時間。步驟S313,從目標客戶端的在線時間信息中讀取目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間。可選地,從上述實施例中記錄的該目標客戶端的在線時間信息中讀取該目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間,記為最后心跳時間。步驟S315,將目標客戶端的標識信息、向目標客戶端推送離線消息的推送時間以及目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間關聯(lián)保存至第一數(shù)據(jù)表中。具體地,將目標客戶端的標識信息、向該目標客戶端推送離線消息的推送時間以及該目標客戶端的最后心跳時間關聯(lián),并保存至第一數(shù)據(jù)表中。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。以六臺iPhone為例,假設這六臺iPhone上的騰訊新聞APP的UserID分別為A、B、C、D、E和F,向每個騰訊新聞APP推送離線消息的推送時間為push_time,每個騰訊新聞APP的最后心跳時間為last_hello_time,可以得到第一數(shù)據(jù)表,如表1所示。表1UserIDpush_timelast_hello_timeApush_time_Alast_hello_time_ABpush_time_Blast_hello_time_BCpush_time_Clast_hello_time_CDpush_time_Dlast_hello_time_DEpush_time_Elast_hello_time_EFpush_time_Flast_hello_time_F………在本發(fā)明上述實施例中,步驟S33,根據(jù)向每個目標終端推送離線消息的推送時間和預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間,可以包括:步驟S331,從第一數(shù)據(jù)表中讀取向任意一個目標客戶端推送離線消息的推送時間與目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間??蛇x地,對于任意一個目標客戶端,從第一數(shù)據(jù)表中讀取向其推送離線消息的推送時間以及其最后心跳時間。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。以騰訊新聞APP的標識信息為上述的表1中的UserIDA為例,從表1中讀取該騰訊新聞APP的推送時間為push_time_A、其最后心跳時間為last_hello_time_A。步驟S333,計算讀取到的推送時間與心跳時間之間的時間差。可選地,對于任意一個目標客戶端來說,計算讀取到的該目標客戶端的推送時間和最后心跳時間之間的差值。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。以騰訊新聞APP的標識信息為上述的表1中的UserIDA為例,從表1中讀取該騰訊新聞APP的推送時間push_time_A、其最后心跳時間last_hello_time_A之后,計算push_time_A與last_hello_time_A的時間差的絕對值,即|push_time_A-last_hello_time_A|。步驟S335,根據(jù)時間差所屬的數(shù)值范圍確定目標客戶端所屬的時間區(qū)間,其中,在確定目標客戶端所屬的時間區(qū)間之后,將目標客戶端的標識信息與目標客戶端所屬的時間區(qū)間關聯(lián)保存至第二數(shù)據(jù)表中。具體地,對于任意一個目標客戶端來說,根據(jù)計算得到的該目標客戶端的推送時間與最后心跳時間之間的時間差,確定該時間差所屬的數(shù)值范圍,以確定該目標客戶端所屬的時間區(qū)間,并將該目標客戶端的標識信息與其所屬的時間區(qū)間關聯(lián)并保持至第二數(shù)據(jù)包中。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。以六臺iPhone為例,假設這六臺iPhone上的騰訊新聞APP的UserID分別為A、B、C、D、E和F,向每個騰訊新聞APP推送離線消息的推送時間為push_time,每個騰訊新聞APP的最后心跳時 間為last_hello_time,可以得到第一數(shù)據(jù)表,如表1所示。分別統(tǒng)計表1中六個騰訊新聞APP的push_time與last_hello_time的時間差,并按照預設的時間區(qū)間為(0,1]、(1,2]、(2,3]、……為例,得到數(shù)據(jù)表2,如表2所示。需要說明的是,在本發(fā)明實施例中,時間區(qū)間的劃分可以按照上報的心跳時間的精度來確定,本發(fā)明對此不做具體限定。表2|push_time-last_hello_time|UserID_list0<|push_time-last_hello_time|<=1A,C,D1<|push_time-last_hello_time|<=2B,E2<|push_time-last_hello_time|<=3F……在一個可選的實施例中,步驟S35,統(tǒng)計每個時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶端的第一數(shù)量,以及每個時間區(qū)間內(nèi)接收到離線消息返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量,可以包括:步驟S351,統(tǒng)計第二數(shù)據(jù)表中任意一個時間區(qū)間內(nèi)所包含的目標客戶端的標識信息的總數(shù)作為時間區(qū)間對應的第一數(shù)量。可選地,根據(jù)第二數(shù)據(jù)表中的記錄結果,統(tǒng)計每個時間區(qū)間內(nèi)所包含目標客戶端的標識信息的總數(shù)作為該時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶端的第一數(shù)量。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。以上述的表2中的0<|push_time-last_hello_time|<=1這一時間區(qū)間為例,該時間區(qū)間內(nèi)所包含的目標客戶端的標識信息的總數(shù)為3(即A、C和D三個騰訊新聞APP),那么該時間區(qū)間對應的第一數(shù) 量即為3。步驟S353,獲取時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息,并將時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息與時間區(qū)間關聯(lián)保存至第二數(shù)據(jù)表中。可選地,對于任意一個時間區(qū)間,獲取該時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息,并將獲取到的標識信息與時間區(qū)間對應關聯(lián)之后保存至第二數(shù)據(jù)表中。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。以上述的表2為例,若返回響應數(shù)據(jù)的iPhone分別為B、C、D、E和F,其騰訊新聞APP的UserID被記入第二數(shù)據(jù)表中的ReceiveUserID_list中,那么第二數(shù)據(jù)表可以更新為表3所示。表3|push_time-last_hello_time|UserID_listReceiveUserID_list0<|push_time-last_hello_time|<=1A,C,DC,D1<|push_time-last_hello_time|<=2B,EB,E2<|push_time-last_hello_time|<=3FF………步驟S355,統(tǒng)計時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息的總數(shù)作為時間區(qū)間對應的第二數(shù)量。具體地,對于任意一個時間區(qū)間,統(tǒng)計其內(nèi)所包含的返回響應數(shù)據(jù)的目標客戶端的標識信息的總數(shù)作為該時間區(qū)間對應的第二數(shù)量。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、 離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。以上述的表3中的0<|push_time-last_hello_time|<=1這一時間區(qū)間為例,該時間區(qū)間內(nèi)所包含的目標客戶端的標識信息的總數(shù)為3(即A、C和D三個騰訊新聞APP),那么該時間區(qū)間對應的第一數(shù)量即為3;該時間區(qū)間內(nèi)返回響應數(shù)據(jù)的目標客戶端的標識信息的總數(shù)為2(即C和D三個騰訊新聞APP),那么該時間區(qū)間對應的第二數(shù)量即為2。根據(jù)本發(fā)明上述實施例,步驟S37,根據(jù)第一數(shù)量和第二數(shù)量計算離線消息的到達率,可以包括:步驟S371,將任意一個時間區(qū)間對應的第二數(shù)量與第一數(shù)量的比值作為時間區(qū)間內(nèi)離線消息的到達率。具體地,對于任意一個時間區(qū)間,將其對應的第二數(shù)量與第一數(shù)量的比值作為該時間區(qū)間內(nèi)該離線消息的到達率,也就是將目標客戶端接收到的離線消息的總數(shù)與目標客戶端的推送代理服務器推送的離線信息的總數(shù)的比值作為該離線消息的到達率。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。以上述的表3中的0<|push_time-last_hello_time|<=1這一時間區(qū)間為例,該時間區(qū)間內(nèi)所包含的目標客戶端的標識信息的總數(shù)為3(即A、C和D三個騰訊新聞APP),那么該時間區(qū)間對應的第一數(shù)量即為3;該時間區(qū)間內(nèi)返回響應數(shù)據(jù)的目標客戶端的標識信息的總數(shù)為2(即C和D三個騰訊新聞APP),那么該時間區(qū)間對應的第二數(shù)量即為2。由上述內(nèi)容可知,該時間區(qū)間對應的離線消息的到達率為2/3。根據(jù)本發(fā)明上述實施例,對于上述表3,可以得到各個時間區(qū)間的離線消息的到達率如表4所示。表4|push_time-last_hello_time|UserID_listReceiveUserID_list到達率0<|push_time-last_hello_time|<=1A,C,DC,D2/31<|push_time-last_hello_time|<=2B,EB,E2/22<|push_time-last_hello_time|<=3FF1/1…………在一個可選的實施例中,在步驟S31,記錄向每個目標客戶端推送離線消息的推送時間之前,上述的方法還可以包括:步驟S30,將離線消息推送至多個目標客戶端,該步驟可以包括:步驟S301,接收服務器發(fā)送的離線消息,其中,離線消息中至少包括目標客戶端所在終端的標識信息和離線消息的消息內(nèi)容??蛇x地,在檢測離線消息推送至多個目標客戶端之前,需要完成將離線消息推送至多個目標客戶端的操作。具體地,目標客戶端的推送代理服務器接收服務器(如目標客戶端的遠程服務器)發(fā)送的離線消息,其中,該離線消息中包括目標客戶端所在智能終端的標識信息和消息內(nèi)容。在一個可選的實施例中,目標客戶端所在智能終端的標識信息可以為智能終端的設備ID。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。當騰訊新聞APP的遠程服務器上有了一條新的時事新聞時,無論目標iPhone上的騰訊新聞APP是否啟動或者在前臺運行,為了及時使用戶了解到該時事新聞,需要向iPhone上的騰訊新聞APP發(fā)送一條離線消息以提示用戶其騰訊新聞APP有一條新信息。此時,騰訊新聞APP的遠程服務器將該離線消息和目標iPhone的標識信息(如iPhone的設備ID)打包成數(shù)據(jù)包發(fā)送給騰訊新聞APP的推送代理服務器。步驟S303,將離線消息推送至推送通知服務系統(tǒng),以使推送通知服務系統(tǒng)按照目標客戶端的標識信息將離線消息推送至目標客戶端。在一個可選的實施例中,目標客戶端的推送代理服務器將包含離線消息的數(shù)據(jù)包推送至推送通知服務系統(tǒng),推送通知服務系統(tǒng)在接收到該數(shù)據(jù)包之后,按照數(shù)據(jù)包中的終端的標識信息將離線消息發(fā)送至對應的終端,然后由終端將該離線消息傳遞至終端上安裝的目標客戶端。繼續(xù)以目標客戶端為已注冊推送服務的iPhone上的騰訊新聞APP、離線消息為騰訊新聞APP的一個新時事新聞為應用場景為例,對本發(fā)明上述實施例進行說明。當騰訊新聞APP的推送代理服務器將該數(shù)據(jù)包發(fā)送至APNS之后,APNS將數(shù)據(jù)包中的離線消息發(fā)送至與iPhone的設備ID對應的iPhone,再由接收到該離線消息的iPhone將消息傳遞至騰訊新聞APP。需要說明的是,在該實施例中,目標客戶端的推送代理服務器將離線消息推送至推送通知服務系統(tǒng)的過程中,以及推送通知服務系統(tǒng)按照目標客戶端的標識信息將離線消息推送至目標客戶端的過程中,離線消息可能會由于網(wǎng)絡狀況差等問題而丟失,因此,準確統(tǒng)計離線消息的到達率在衡量推送離線消息的整個系統(tǒng)的穩(wěn)定性和可用性時就顯得非常重要??蛇x地,在本實施例中,上述獲取離線消息的到達率的方法可以應用于如圖2所示的計算機終端20所構成的硬件環(huán)境中。如圖2所示,計算機終端20通過網(wǎng)絡與其他計算機終端進行連接,上述網(wǎng)絡包括但不限于:廣域網(wǎng)、城域網(wǎng)或局域網(wǎng)。需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。實施例2根據(jù)本發(fā)明實施例,還提供了一種用于實施上述獲取離線消息的到達率的方法的獲取離線消息的到達率的裝置,如圖4所示,該裝置可以包括:第一記錄單元41、確定單元43、統(tǒng)計單元45以及計算單元47。其中,第一記錄單元41用于在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送離線消息的推送時間。在一個可選的實施例中,對于每一個離線消息,在目標客戶端的推送代理服務器檢測到已經(jīng)將離線消息推送至多個目標客戶端之后,目標客戶端的推送代理服務器記錄其向每個目標客戶端推送該離線消息的推送時間,其中,目標客戶端的推送代理服務器可以將向每個目標客戶端推送該離線消息的推送時間記錄到數(shù)據(jù)表中??蛇x地,目標客戶端可以為智能手機、平板電腦等移動終端上安裝的應用程序客戶端;離線消息可以為某個應用程序客戶端對應的一條信息、一項即將到期的日程或者應用程序客戶端的遠程服務器上的新數(shù)據(jù)。需要說明的是,目標客戶端的推送代理服務器完成向目標客戶端推送該離線消息的操作之后,即可檢測到該離線消息推送至目標客戶端成功,但是,此時并不代表著目標客戶端已經(jīng)成功接收到了該離線消息。確定單元43用于根據(jù)向每個目標客戶端推送離線消息的推送時間和 預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間??蛇x地,對于每一個離線消息,在目標客戶端的推送代理服務器檢測到離線消息推送至多個目標客戶端成功之后,對于該多個目標客戶端中的任意一個目標客戶端,目標客戶端的推送代理服務器根據(jù)記錄的向該目標客戶端推送離線消息的推送時間,以及預先獲取的該目標客戶端的在線時間信息,將該目標客戶端對應到多個預先劃分的時間區(qū)間中的一個時間區(qū)間內(nèi),以便分時間段統(tǒng)計離線消息的到達率。在一個可選的實施例中,目標客戶端的在線時間信息可以預先緩存在目標客戶端的推送代理服務器上。目標客戶端的在線時間信息可以通過心跳機制獲得。通過本發(fā)明上述實施例,通過目標客戶端推送該離線消息的推送時間和該目標客戶端的在線時間信息,可以判斷在推送該離線消息時目標客戶端是否在線(如,目標客戶端在前臺運行),并且,通過預先劃分的多個時間區(qū)間,可以分別統(tǒng)計不同在線狀態(tài)的目標客戶端的離線消息到達率,以實現(xiàn)利用實際離線消息、分時間段統(tǒng)計離線消息的到達率,從而解決了現(xiàn)有技術中只能在用戶上線之后發(fā)送與實際離線消息不一致的測試推送包導致統(tǒng)計離線消息到達率不準確的問題。統(tǒng)計單元45用于統(tǒng)計每個時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶端的第一數(shù)量,以及每個時間區(qū)間內(nèi)接收到離線消息返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量。具體地,在確定每個目標客戶端所屬的時間區(qū)間之后,目標客戶端的推送代理服務器分別統(tǒng)計每個時間區(qū)間內(nèi)接收到離線消息的目標客戶端的第一數(shù)量以及接收到該離線消息并返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量??蛇x地,在目標客戶端所在的智能終端接收到該離線消息之后,該智 能終端向目標客戶端的推送代理服務器返回響應數(shù)據(jù),以告知目標客戶端的推送代理服務器該智能終端成功接收到了該離線消息,同時,該智能終端將接收到的離線消息傳遞至目標客戶端。在一個可選的實施例中,接收到離線消息的目標客戶端指的是目標客戶端的推送代理服務器向其發(fā)送了離線消息的客戶端,而不代表接收到離線消息的目標客戶端會返回響應數(shù)據(jù)。具體地,接收到離線消息的目標客戶端可以將該離線消息顯示在目標客戶端所在的智能終端的通知欄或者在目標客戶端的圖標上顯示數(shù)字提示消息,同時,該智能終端還可以播放警告音以提示用戶。一旦用戶注意到目標客戶端有新的信息、時間或者數(shù)據(jù),用戶可以點擊該離線消息以運行目標客戶端并訪問新的內(nèi)容。用戶也可以選擇忽略該離線消息,并將其從通知欄中清除,此時目標客戶端不會被激活。需要說明的是,無論用戶是否打開該離線消息,只要智能終端接收到了該離線消息,都將向目標客戶端的推送代理服務器返回響應于該離線消息的響應數(shù)據(jù)。計算單元47用于根據(jù)第一數(shù)量和第二數(shù)量計算每個時間區(qū)間內(nèi)離線消息的到達率??蛇x地,對于任意一個時間區(qū)間,根據(jù)該時間區(qū)間對應的接收到離線消息的目標客戶端的第一數(shù)量和接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量,確定該時間區(qū)間內(nèi)該離線消息所對應的到達率。在一個可選的實施例中,對于任意一個離線消息、任意一個時間區(qū)間,可以將第一數(shù)量與第二數(shù)量的比值作為該時間區(qū)間內(nèi)該離線消息的到達率。采用本發(fā)明實施例,在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送該離線消息的推送時間,并根據(jù)預先獲取的每個目標客戶端的在線時間信息和上述記錄的推送時間,確定每個目標 客戶端所屬的時間區(qū)間,然后統(tǒng)計每個時間區(qū)間內(nèi)接收到該離線消息的目標客戶端的數(shù)量以及接收到該離線消息并返回響應數(shù)據(jù)的目標客戶端的數(shù)量,以分別計算每個時間區(qū)間對應的該離線消息的到達率。通過本發(fā)明實施例,通過記錄向目標客戶端推送實際離線消息的推送時間,以及預先獲取的目標客戶端的在線時間信息,可以確定目標客戶端的在線狀態(tài);通過記錄的實際離線消息的推送時間和預先獲取的目標客戶端的在線時間信息,將目標客戶端對應到預先劃分的時間區(qū)間內(nèi),并分別統(tǒng)計各個時間區(qū)間內(nèi)對應的離線消息的到達率,可以實現(xiàn)分時間段統(tǒng)計實際離線消息的到達率,無需現(xiàn)有技術中在用戶上線之后才能利用測試推送包估算離線消息的到達率,可以真實地反饋在短時間內(nèi)推送大量離線消息的場景,利用實際離線消息真實、準確地確定離線消息的到達率,不受網(wǎng)絡狀況的影響。通過本發(fā)明實施例,實現(xiàn)了真實、準確地確定離線消息的到達率的技術效果,進而解決了現(xiàn)有技術中在短時間內(nèi)推送大量離線消息的場景下,無法準確統(tǒng)計離線消息的到達率的技術問題。根據(jù)本發(fā)明上述實施例,如圖5所示,上述的裝置還可以包括:接收單元51和第二記錄單元53。其中,接收單元51用于在根據(jù)向每個目標客戶端推送離線消息的推送時間和預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間之前,接收任意一個目標客戶端每隔預設時間發(fā)送的心跳數(shù)據(jù)包,其中,心跳數(shù)據(jù)包中包括目標客戶端的標識信息和發(fā)送心跳數(shù)據(jù)包的心跳時間。具體地,在根據(jù)向每個目標客戶端推送離線消息的推送時間和預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間之前,首先需要獲取每個目標客戶端的在線時間信息。在一個可選的實施例中,可以通過心跳機制來獲取目標客戶端的在線時間信息。目標客戶端通過每隔預設時間持續(xù)向目標客戶端的在線狀態(tài)管理服務器發(fā)送心跳數(shù)據(jù)包的方式告知服務器其仍然在線。若目標客戶端的 在線狀態(tài)管理服務器在一定的時間內(nèi)沒有再接到目標客戶端發(fā)送的心跳數(shù)據(jù)包,則可以認為該目標客戶端離線。可選地,在線狀態(tài)管理服務器將接收到的目標客戶端持續(xù)發(fā)送的心跳數(shù)據(jù)包發(fā)送至目標客戶端的推送代理服務器,該推送代理服務器緩存每個目標客戶端的所有心跳數(shù)據(jù)包。第二記錄單元53用于記錄接收到的目標客戶端的所有心跳數(shù)據(jù)包,作為目標客戶端的在線時間信息。具體地,目標客戶端的推送代理服務器記錄每個目標客戶端發(fā)送心跳數(shù)據(jù)包的所有發(fā)送時間,并將其記為該目標客戶端的在線時間信息。在一個可選的實施例中,如圖6所示,第一記錄單元41可以包括:第一獲取模塊61、第一讀取模塊63以及保存模塊65。其中,第一獲取模塊61用于獲取向任意一個目標客戶端推送離線消息的推送時間。具體地,對于任意一個目標客戶端,獲取向其推送離線消息的推送時間。第一讀取模塊63用于從目標客戶端的在線時間信息中讀取目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間??蛇x地,從上述實施例中記錄的該目標客戶端的在線時間信息中讀取該目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間,記為最后心跳時間。保存模塊65用于將目標客戶端的標識信息、向目標客戶端推送離線消息的推送時間以及目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間關聯(lián)保存至第一數(shù)據(jù)表中。具體地,將目標客戶端的標識信息、向該目標客戶端推送離線消息的推送時間以及該目標客戶端的最后心跳時間關聯(lián),并保存至第一數(shù)據(jù)表中。在本發(fā)明上述實施例中,如圖7所示,確定單元43可以包括:第二 讀取模塊71、計算模塊73以及確定模塊75。其中,第二讀取模塊71用于從第一數(shù)據(jù)表中讀取向任意一個目標客戶端推送離線消息的推送時間與目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間??蛇x地,對于任意一個目標客戶端,從第一數(shù)據(jù)表中讀取向其推送離線消息的推送時間以及其最后心跳時間。計算模塊73用于計算讀取到的推送時間與心跳時間之間的時間差??蛇x地,對于任意一個目標客戶端來說,計算讀取到的該目標客戶端的推送時間和最后心跳時間之間的差值。確定模塊75用于根據(jù)時間差所屬的數(shù)值范圍確定目標客戶端所屬的時間區(qū)間,其中,在確定目標客戶端所屬的時間區(qū)間之后,將目標客戶端的標識信息與目標客戶端所屬的時間區(qū)間關聯(lián)保存至第二數(shù)據(jù)表中。具體地,對于任意一個目標客戶端來說,根據(jù)計算得到的該目標客戶端的推送時間與最后心跳時間之間的時間差,確定該時間差所屬的數(shù)值范圍,以確定該目標客戶端所屬的時間區(qū)間,并將該目標客戶端的標識信息與其所屬的時間區(qū)間關聯(lián)并保持至第二數(shù)據(jù)包中。需要說明的是,在本發(fā)明實施例中,時間區(qū)間的劃分可以按照上報的心跳時間的精度來確定,本發(fā)明對此不做具體限定。在一個可選的實施例中,如圖8所示,統(tǒng)計單元45可以包括:第一統(tǒng)計模塊81、第二獲取模塊83以及第二統(tǒng)計模塊85。其中,第一統(tǒng)計模塊81用于統(tǒng)計第二數(shù)據(jù)表中任意一個時間區(qū)間內(nèi)所包含的目標客戶端的標識信息的總數(shù)作為時間區(qū)間對應的第一數(shù)量??蛇x地,根據(jù)第二數(shù)據(jù)表中的記錄結果,統(tǒng)計每個時間區(qū)間內(nèi)所包含目標客戶端的標識信息的總數(shù)作為該時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶端的第一數(shù)量。第二獲取模塊83用于獲取時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息,并將時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息與時間區(qū)間關聯(lián)保存至第二數(shù)據(jù)表中??蛇x地,對于任意一個時間區(qū)間,獲取該時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息,并將獲取到的標識信息與時間區(qū)間對應關聯(lián)之后保存至第二數(shù)據(jù)表中。第二統(tǒng)計模塊85用于統(tǒng)計時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息的總數(shù)作為時間區(qū)間對應的第二數(shù)量。具體地,對于任意一個時間區(qū)間,統(tǒng)計其內(nèi)所包含的返回響應數(shù)據(jù)的目標客戶端的標識信息的總數(shù)作為該時間區(qū)間對應的第二數(shù)量。根據(jù)本發(fā)明上述實施例,如圖9所示,計算單元47可以包括:計算模塊91用于將任意一個時間區(qū)間對應的第二數(shù)量與第一數(shù)量的比值作為時間區(qū)間內(nèi)離線消息的到達率。具體地,對于任意一個時間區(qū)間,將其對應的第二數(shù)量與第一數(shù)量的比值作為該時間區(qū)間內(nèi)該離線消息的到達率,也就是將目標客戶端接收到的離線消息的總數(shù)與目標客戶端的推送代理服務器推送的離線信息的總數(shù)的比值作為該離線消息的到達率。在一個可選的實施例中,上述的裝置還可以包括:推送單元40,用于在記錄向每個目標客戶端推送離線消息的推送時間之前,將離線消息推送至多個目標客戶端,如圖10所示,推送單元40可以包括:接收模塊1001和推送模塊1003。其中,接收模塊1001用于接收服務器發(fā)送的離線消息,其中,離線消息中至少包括目標客戶端所在終端的標識信息和離線消息的消息內(nèi)容??蛇x地,在檢測離線消息推送至多個目標客戶端之前,需要完成將離 線消息推送至多個目標客戶端的操作。具體地,目標客戶端的推送代理服務器接收服務器(如目標客戶端的遠程服務器)發(fā)送的離線消息,其中,該離線消息中包括目標客戶端所在智能終端的標識信息和消息內(nèi)容。在一個可選的實施例中,目標客戶端所在智能終端的標識信息可以為智能終端的設備ID。推送模塊1003用于將離線消息推送至推送通知服務系統(tǒng),以使推送通知服務系統(tǒng)按照目標客戶端的標識信息將離線消息推送至目標客戶端。在一個可選的實施例中,目標客戶端的推送代理服務器將包含離線消息的數(shù)據(jù)包推送至推送通知服務系統(tǒng),推送通知服務系統(tǒng)在接收到該數(shù)據(jù)包之后,按照數(shù)據(jù)包中的終端的標識信息將離線消息發(fā)送至對應的終端,然后由終端將該離線消息傳遞至終端上安裝的目標客戶端。需要說明的是,在該實施例中,目標客戶端的推送代理服務器將離線消息推送至推送通知服務系統(tǒng)的過程中,以及推送通知服務系統(tǒng)按照目標客戶端的標識信息將離線消息推送至目標客戶端的過程中,離線消息可能會由于網(wǎng)絡狀況差等問題而丟失,因此,準確統(tǒng)計離線消息的到達率在衡量推送離線消息的整個系統(tǒng)的穩(wěn)定性和可用性時就顯得非常重要??蛇x地,在本實施例中,上述獲取離線消息的到達率的裝置可以應用于如圖2所示的計算機終端20所構成的硬件環(huán)境中。如圖2所示,計算機終端20通過網(wǎng)絡與其他計算機終端進行連接,上述網(wǎng)絡包括但不限于:廣域網(wǎng)、城域網(wǎng)或局域網(wǎng)。實施例3根據(jù)本發(fā)明實施例,還提供了一種獲取離線消息的到達率的系統(tǒng),如圖11所示,該系統(tǒng)包括:多個目標客戶端1101(圖中僅示出一個)、在線狀態(tài)管理服務器1103、以及推送代理服務器1105。其中,多個目標客戶端1101與在線狀態(tài)管理服務器通訊,用于每隔預設時間向在線狀態(tài)管理服務器發(fā)送心跳數(shù)據(jù)包,其中,心跳數(shù)據(jù)包中包 括目標客戶端的標識信息和發(fā)送心跳數(shù)據(jù)包的心跳時間。在一個可選的實施例中,目標客戶端通過每隔預設時間持續(xù)向在線狀態(tài)管理服務器發(fā)送心跳數(shù)據(jù)包的方式告知服務器其仍然在線。若目標客戶端的在線狀態(tài)管理服務器在一定的時間內(nèi)沒有再接到目標客戶端發(fā)送的心跳數(shù)據(jù)包,則可以認為該目標客戶端離線。在線狀態(tài)管理服務器1103與推送代理服務器通訊,用于接收多個目標客戶端的所有心跳數(shù)據(jù)包,并將多個目標客戶端的所有心跳數(shù)據(jù)包發(fā)送至推送代理服務器??蛇x地,在線狀態(tài)管理服務器將接收到的目標客戶端持續(xù)發(fā)送的心跳數(shù)據(jù)包發(fā)送至目標客戶端的推送代理服務器,該推送代理服務器緩存每個目標客戶端的所有心跳數(shù)據(jù)包。推送代理服務器1105與多個目標客戶端通訊,用于在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送離線消息的推送時間,根據(jù)向每個目標客戶端推送離線消息的推送時間和每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間,統(tǒng)計每個時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶端的第一數(shù)量,以及每個時間區(qū)間內(nèi)接收到離線消息返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量,以及根據(jù)第一數(shù)量和第二數(shù)量計算每個時間區(qū)間內(nèi)離線消息的到達率,其中,每個目標客戶端的在線時間信息包括每個目標客戶端的所有心跳數(shù)據(jù)包。在一個可選的實施例中,對于每一個離線消息,在目標客戶端的推送代理服務器檢測到已經(jīng)將離線消息推送至多個目標客戶端之后,目標客戶端的推送代理服務器記錄其向每個目標客戶端推送該離線消息的推送時間,其中,目標客戶端的推送代理服務器可以將向每個目標客戶端推送該離線消息的推送時間記錄到數(shù)據(jù)表中??蛇x地,目標客戶端可以為智能手機、平板電腦等移動終端上安裝的應用程序客戶端;離線消息可以為某個應用程序客戶端對應的一條信息、 一項即將到期的日程或者應用程序客戶端的遠程服務器上的新數(shù)據(jù)。需要說明的是,目標客戶端的推送代理服務器完成向目標客戶端推送該離線消息的操作之后,即可檢測到該離線消息推送至目標客戶端成功,但是,此時并不代表著目標客戶端已經(jīng)成功接收到了該離線消息。可選地,對于每一個離線消息,在目標客戶端的推送代理服務器檢測到離線消息推送至多個目標客戶端成功之后,對于該多個目標客戶端中的任意一個目標客戶端,目標客戶端的推送代理服務器根據(jù)記錄的向該目標客戶端推送離線消息的推送時間,以及預先獲取的該目標客戶端的在線時間信息,將該目標客戶端對應到多個預先劃分的時間區(qū)間中的一個時間區(qū)間內(nèi),以便分時間段統(tǒng)計離線消息的到達率。在一個可選的實施例中,目標客戶端的在線時間信息可以預先緩存在目標客戶端的推送代理服務器上。目標客戶端的在線時間信息可以通過心跳機制獲得。通過本發(fā)明上述實施例,通過目標客戶端推送該離線消息的推送時間和該目標客戶端的在線時間信息,可以判斷在推送該離線消息時目標客戶端是否在線(如,目標客戶端在前臺運行),并且,通過預先劃分的多個時間區(qū)間,可以分別統(tǒng)計不同在線狀態(tài)的目標客戶端的離線消息到達率,以實現(xiàn)利用實際離線消息、分時間段統(tǒng)計離線消息的到達率,從而解決了現(xiàn)有技術中只能在用戶上線之后發(fā)送與實際離線消息不一致的測試推送包導致統(tǒng)計離線消息到達率不準確的問題??蛇x地,在確定每個目標客戶端所屬的時間區(qū)間之后,目標客戶端的推送代理服務器分別統(tǒng)計每個時間區(qū)間內(nèi)接收到離線消息的目標客戶端的第一數(shù)量以及接收到該離線消息并返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量。可選地,在目標客戶端所在的智能終端接收到該離線消息之后,該智能終端向目標客戶端的推送代理服務器返回響應數(shù)據(jù),以告知目標客戶端 的推送代理服務器該智能終端成功接收到了該離線消息,同時,該智能終端將接收到的離線消息傳遞至目標客戶端。在一個可選的實施例中,接收到離線消息的目標客戶端指的是目標客戶端的推送代理服務器向其發(fā)送了離線消息的客戶端,而不代表接收到離線消息的目標客戶端會返回響應數(shù)據(jù)。具體地,接收到離線消息的目標客戶端可以將該離線消息顯示在目標客戶端所在的智能終端的通知欄或者在目標客戶端的圖標上顯示數(shù)字提示消息,同時,該智能終端還可以播放警告音以提示用戶。一旦用戶注意到目標客戶端有新的信息、時間或者數(shù)據(jù),用戶可以點擊該離線消息以運行目標客戶端并訪問新的內(nèi)容。用戶也可以選擇忽略該離線消息,并將其從通知欄中清除,此時目標客戶端不會被激活。需要說明的是,無論用戶是否打開該離線消息,只要智能終端接收到了該離線消息,都將向目標客戶端的推送代理服務器返回響應于該離線消息的響應數(shù)據(jù)??蛇x地,對于任意一個時間區(qū)間,根據(jù)該時間區(qū)間對應的接收到離線消息的目標客戶端的第一數(shù)量和接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量,確定該時間區(qū)間內(nèi)該離線消息所對應的到達率。在一個可選的實施例中,對于任意一個離線消息、任意一個時間區(qū)間,可以將第一數(shù)量與第二數(shù)量的比值作為該時間區(qū)間內(nèi)該離線消息的到達率。采用本發(fā)明實施例,在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送該離線消息的推送時間,并根據(jù)預先獲取的每個目標客戶端的在線時間信息和上述記錄的推送時間,確定每個目標客戶端所屬的時間區(qū)間,然后統(tǒng)計每個時間區(qū)間內(nèi)接收到該離線消息的目標客戶端的數(shù)量以及接收到該離線消息并返回響應數(shù)據(jù)的目標客戶端的數(shù)量,以分別計算每個時間區(qū)間對應的該離線消息的到達率。通過本發(fā)明實施例,通過記錄向目標客戶端推送實際離線消息的推送時間,以及預先 獲取的目標客戶端的在線時間信息,可以確定目標客戶端的在線狀態(tài);通過記錄的實際離線消息的推送時間和預先獲取的目標客戶端的在線時間信息,將目標客戶端對應到預先劃分的時間區(qū)間內(nèi),并分別統(tǒng)計各個時間區(qū)間內(nèi)對應的離線消息的到達率,可以實現(xiàn)分時間段統(tǒng)計實際離線消息的到達率,無需現(xiàn)有技術中在用戶上線之后才能利用測試推送包估算離線消息的到達率,可以真實地反饋在短時間內(nèi)推送大量離線消息的場景,利用實際離線消息真實、準確地確定離線消息的到達率,不受網(wǎng)絡狀況的影響。通過本發(fā)明實施例,實現(xiàn)了真實、準確地確定離線消息的到達率的技術效果,進而解決了現(xiàn)有技術中在短時間內(nèi)推送大量離線消息的場景下,無法準確統(tǒng)計離線消息的到達率的技術問題。根據(jù)本發(fā)明上述實施例,如圖12所示,上述的系統(tǒng)還可以包括:遠程服務器1201,與推送代理服務器通訊,用于將離線消息發(fā)送至推送代理服務器??蛇x地,在檢測離線消息推送至多個目標客戶端之前,需要完成將離線消息推送至多個目標客戶端的操作。具體地,目標客戶端的推送代理服務器接收服務器(如目標客戶端的遠程服務器)發(fā)送的離線消息,其中,該離線消息中包括目標客戶端所在智能終端的標識信息和消息內(nèi)容。在一個可選的實施例中,目標客戶端所在智能終端的標識信息可以為智能終端的設備ID。在一個可選的實施例中,目標客戶端的推送代理服務器將包含離線消息的數(shù)據(jù)包推送至推送通知服務系統(tǒng),推送通知服務系統(tǒng)在接收到該數(shù)據(jù)包之后,按照數(shù)據(jù)包中的終端的標識信息將離線消息發(fā)送至對應的終端,然后由終端將該離線消息傳遞至終端上安裝的目標客戶端。需要說明的是,在該實施例中,目標客戶端的推送代理服務器將離線消息推送至推送通知服務系統(tǒng)的過程中,以及推送通知服務系統(tǒng)按照目標客戶端的標識信息將離線消息推送至目標客戶端的過程中,離線消息可能會由于網(wǎng)絡狀況差等問題而丟失,因此,準確統(tǒng)計離線消息的到達率在衡 量推送離線消息的整個系統(tǒng)的穩(wěn)定性和可用性時就顯得非常重要。下面結合圖13詳細介紹本發(fā)明上述實施例。圖13是根據(jù)本發(fā)明實施例三的一種可選的獲取離線消息的到達率的系統(tǒng)的示意圖,如圖13所示,該系統(tǒng)包括:目標客戶端1301、OnlineServer(中文名稱為在線服務器)1032、事件代理服務器1303、IOSPushProxy(IOS推送代理服務器)1304、Push任務管理系統(tǒng)(推送任務管理系統(tǒng))1305以及APNS1306。具體地,目標客戶端每間隔預設時間(如30秒)向在線狀態(tài)管理服務器(如OnlineServer)發(fā)送Hello心跳包,以告知服務器其處于在線狀態(tài);OnlineServer負責接收所有目標客戶端發(fā)送的Hello心跳包,并將Hello心跳包發(fā)送至事件代理服務器;事件代理服務器負責處理接收所有目標客戶端的Hello心跳包并將其分發(fā)至推送代理服務器(如IOSPushProxy);IOSPushProxy負責將目標客戶端的所有Hello心跳包緩存至本地(作為用戶心跳信息緩存),接收遠程服務器(如Push任務管理系統(tǒng))發(fā)送的離線消息,并將該離線消息推送至推送通知服務系統(tǒng)(如APNS);APNS負責將接收到的離線消息推送至目標客戶端。其中,目標客戶端在接收到離線消息之后,返回響應數(shù)據(jù)至推送代理服務器。在該例中,IOSPushProxy在推送離線消息時,需要查詢其本地緩存的用戶心跳信息,并在將離線消息推送給APNS成功后,記錄兩個數(shù)據(jù):離線消息的推送時間push_time和目標客戶端的最后一次心跳時間last_hello_time。并且,目標客戶端接收到離線消息后,上報一個收到離線消息的響應數(shù)據(jù)至IOSPushProxy。在推送離線消息完成后,IOSPushProxy服務器的數(shù)據(jù)記錄如下:UserIDpush_timelast_hello_timeApush_time_Alast_hello_time_ABpush_time_Blast_hello_time_BCpush_time_Clast_hello_time_CDpush_time_Dlast_hello_time_DEpush_time_Elast_hello_time_EFpush_time_Flast_hello_time_F………在統(tǒng)計該離線消息的到達率時,按照push_time與last_hello_time之間的時間差分段統(tǒng)計,細分區(qū)間可以根據(jù)心跳包的上報時間精度來設置,假設細分區(qū)間為1秒,那么有如下數(shù)據(jù):|push_time-last_hello_time|UserID_list0<|push_time-last_hello_time|<=1A,C,D1<|push_time-last_hello_time|<=2B,E2<|push_time-last_hello_time|<=3F……統(tǒng)計目標客戶端在收到離線消息之后返回的響應數(shù)據(jù),根據(jù)每個時間區(qū)間內(nèi)哪些用戶收到了推送的離線消息,可以計算各個時間區(qū)間的離線消息推送的到達率。|push_time-last_hello_time|ReceiveUserID_list到達率0<|push_time-last_hello_time|<=1C,D2/31<|push_time-last_hello_time|<=2B,E2/22<|push_time-last_hello_time|<=3F1/1………通過本發(fā)明上述實施例,通過目標客戶端推送該離線消息的推送時間和該目標客戶端的最后一次心跳時間,可以判斷在推送該離線消息時目標客戶端是否在線,并且,通過預先劃分的多個時間區(qū)間,可以分別統(tǒng)計不同在線狀態(tài)的目標客戶端的離線消息到達率,可以實現(xiàn)利用實際離線消息、分時間段統(tǒng)計離線消息的到達率,從而解決了現(xiàn)有技術中只能在用戶上線之后發(fā)送與實際離線消息不一致的測試推送包、且無法測試推送包無法真實反映短時間內(nèi)推送大量的離線消息時的推送到達率,而導致統(tǒng)計離線消息到達率不準確的問題。可選地,在本實施例中,上述獲取離線消息的到達率的系統(tǒng)可以應用于如圖2所示的計算機終端20所構成的硬件環(huán)境中。如圖2所示,計算機終端20通過網(wǎng)絡與其他計算機終端進行連接,上述網(wǎng)絡包括但不限于:廣域網(wǎng)、城域網(wǎng)或局域網(wǎng)。實施例4本發(fā)明的實施例可以提供一種計算機終端,該計算機終端可以是計算機終端群中的任意一個計算機終端設備??蛇x地,在本實施例中,上述計算機終端也可以替換為移動終端等終端設備??蛇x地,在本實施例中,上述計算機終端可以位于計算機網(wǎng)絡的多個網(wǎng)絡設備中的至少一個網(wǎng)絡設備??蛇x地,圖14是根據(jù)本發(fā)明實施例的一種計算機終端的結構框圖。如圖14所示,該計算機終端A可以包括:一個或多個(圖中僅示出一個)處理器1401、存儲器1403、以及傳輸裝置1405。其中,存儲器1403可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的獲取離線消息的到達率的方法和裝置對應的程序指令/模塊,處理器1401通過運行存儲在存儲器1403內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應用以及數(shù)據(jù)處理,即實現(xiàn)上述的獲取離線消息的到達率的方法。存儲器1403可包括高速隨機存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器1403可進一步包括相對于處理器1401遠程設置的存儲器,這些遠程存儲器可以通過網(wǎng)絡連接至計算機終端A。上述網(wǎng)絡的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。上述的傳輸裝置1405用于經(jīng)由一個網(wǎng)絡接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡具體實例可包括有線網(wǎng)絡及無線網(wǎng)絡。在一個實例中,傳輸裝置1405包括一個網(wǎng)絡適配器(NetworkInterfaceController,NIC),其可通過網(wǎng)線與其他網(wǎng)絡設備與路由器相連從而可與互聯(lián)網(wǎng)或局域網(wǎng)進行通訊。在一個實例中,傳輸裝置1405為射頻(RadioFrequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進行通訊。其中,具體地,存儲器1403用于存儲預設動作條件和預設權限用戶的信息、以及應用程序。處理器1401可以通過傳輸裝置調(diào)用存儲器1403存儲的信息及應用程序,以執(zhí)行下述步驟:在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送離線消息的推送時間;根據(jù)向每個目標客戶端推送離線消息的推送時間和預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間;統(tǒng)計每個時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶端的第一數(shù)量,以及每個時間區(qū)間內(nèi)接收到離線消息返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量;根據(jù)第一數(shù)量和第二數(shù)量計算每個時間區(qū)間內(nèi)離線消息的到達率??蛇x的,上述處理器1401還可以執(zhí)行如下步驟的程序代碼:接收任意一個目標客戶端每隔預設時間發(fā)送的心跳數(shù)據(jù)包,其中,心跳數(shù)據(jù)包中 包括目標客戶端的標識信息和發(fā)送心跳數(shù)據(jù)包的心跳時間;記錄接收到的目標客戶端的所有心跳數(shù)據(jù)包,作為目標客戶端的在線時間信息??蛇x的,上述處理器1401還可以執(zhí)行如下步驟的程序代碼:獲取向任意一個目標客戶端推送離線消息的推送時間;從目標客戶端的在線時間信息中讀取目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間;將目標客戶端的標識信息、向目標客戶端推送離線消息的推送時間以及目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間關聯(lián)保存至第一數(shù)據(jù)表中??蛇x的,上述處理器1401還可以執(zhí)行如下步驟的程序代碼:從第一數(shù)據(jù)表中讀取向任意一個目標客戶端推送離線消息的推送時間與目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間;計算讀取到的推送時間與心跳時間之間的時間差;根據(jù)時間差所屬的數(shù)值范圍確定目標客戶端所屬的時間區(qū)間,其中,在確定目標客戶端所屬的時間區(qū)間之后,將目標客戶端的標識信息與目標客戶端所屬的時間區(qū)間關聯(lián)保存至第二數(shù)據(jù)表中??蛇x的,上述處理器1401還可以執(zhí)行如下步驟的程序代碼:統(tǒng)計第二數(shù)據(jù)表中任意一個時間區(qū)間內(nèi)所包含的目標客戶端的標識信息的總數(shù)作為時間區(qū)間對應的第一數(shù)量;獲取時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息,并將時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息與時間區(qū)間關聯(lián)保存至第二數(shù)據(jù)表中;統(tǒng)計時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息的總數(shù)作為時間區(qū)間對應的第二數(shù)量??蛇x的,上述處理器1401還可以執(zhí)行如下步驟的程序代碼:將任意一個時間區(qū)間對應的第二數(shù)量與第一數(shù)量的比值作為時間區(qū)間內(nèi)離線消息的到達率??蛇x的,上述處理器1401還可以執(zhí)行如下步驟的程序代碼:接收服務器發(fā)送的離線消息,其中,離線消息中至少包括目標客戶端所在終端的標識信息和離線消息的消息內(nèi)容;將離線消息推送至推送通知服務系統(tǒng),以使推送通知服務系統(tǒng)按照目標客戶端的標識信息將離線消息推送至目 標客戶端??蛇x地,本實施例中的具體示例可以參考上述實施例1中所描述的示例,本實施例在此不再贅述。實施例5本發(fā)明的實施例還提供了一種存儲介質(zhì)??蛇x地,在本實施例中,上述存儲介質(zhì)可以存儲上述實施例1的獲取離線消息的到達率的方法的程序代碼??蛇x地,在本實施例中,上述存儲介質(zhì)可以位于計算機的網(wǎng)絡中的多個網(wǎng)絡設備中的至少一個網(wǎng)絡設備??蛇x地,在本實施例中,存儲介質(zhì)被設置為存儲用于執(zhí)行以下步驟的程序代碼:在檢測到離線消息推送至多個目標客戶端成功之后,記錄向每個目標客戶端推送離線消息的推送時間;根據(jù)向每個目標客戶端推送離線消息的推送時間和預先獲取的每個目標客戶端的在線時間信息,確定每個目標客戶端所屬的時間區(qū)間;統(tǒng)計每個時間區(qū)間內(nèi)所包含的接收到離線消息的目標客戶端的第一數(shù)量,以及每個時間區(qū)間內(nèi)接收到離線消息返回響應數(shù)據(jù)的目標客戶端的第二數(shù)量;根據(jù)第一數(shù)量和第二數(shù)量計算每個時間區(qū)間內(nèi)離線消息的到達率??蛇x地,存儲介質(zhì)還被設置為存儲用于執(zhí)行以下步驟的程序代碼:接收任意一個目標客戶端每隔預設時間發(fā)送的心跳數(shù)據(jù)包,其中,心跳數(shù)據(jù)包中包括目標客戶端的標識信息和發(fā)送心跳數(shù)據(jù)包的心跳時間;記錄接收到的目標客戶端的所有心跳數(shù)據(jù)包,作為目標客戶端的在線時間信息。可選地,存儲介質(zhì)還被設置為存儲用于執(zhí)行以下步驟的程序代碼:接收任意一個目標客戶端每隔預設時間發(fā)送的心跳數(shù)據(jù)包,其中,心跳數(shù)據(jù)包中包括目標客戶端的標識信息和發(fā)送心跳數(shù)據(jù)包的心跳時間;記錄接收到的目標客戶端的所有心跳數(shù)據(jù)包,作為目標客戶端的在線時間信息??蛇x地,存儲介質(zhì)還被設置為存儲用于執(zhí)行以下步驟的程序代碼:從 第一數(shù)據(jù)表中讀取向任意一個目標客戶端推送離線消息的推送時間與目標客戶端最近一次發(fā)送心跳數(shù)據(jù)包的心跳時間;計算讀取到的推送時間與心跳時間之間的時間差;根據(jù)時間差所屬的數(shù)值范圍確定目標客戶端所屬的時間區(qū)間,其中,在確定目標客戶端所屬的時間區(qū)間之后,將目標客戶端的標識信息與目標客戶端所屬的時間區(qū)間關聯(lián)保存至第二數(shù)據(jù)表中??蛇x地,存儲介質(zhì)還被設置為存儲用于執(zhí)行以下步驟的程序代碼:統(tǒng)計第二數(shù)據(jù)表中任意一個時間區(qū)間內(nèi)所包含的目標客戶端的標識信息的總數(shù)作為時間區(qū)間對應的第一數(shù)量;獲取時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息,并將時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息與時間區(qū)間關聯(lián)保存至第二數(shù)據(jù)表中;統(tǒng)計時間區(qū)間內(nèi)所包含的接收到離線消息并返回響應數(shù)據(jù)的目標客戶端的標識信息的總數(shù)作為時間區(qū)間對應的第二數(shù)量??蛇x地,存儲介質(zhì)還被設置為存儲用于執(zhí)行以下步驟的程序代碼:將任意一個時間區(qū)間對應的第二數(shù)量與第一數(shù)量的比值作為時間區(qū)間內(nèi)離線消息的到達率??蛇x地,存儲介質(zhì)還被設置為存儲用于執(zhí)行以下步驟的程序代碼:接收服務器發(fā)送的離線消息,其中,離線消息中至少包括目標客戶端所在終端的標識信息和離線消息的消息內(nèi)容;將離線消息推送至推送通知服務系統(tǒng),以使推送通知服務系統(tǒng)按照目標客戶端的標識信息將離線消息推送至目標客戶端??蛇x地,在本實施例中,上述存儲介質(zhì)可以包括但不限于:U盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM,RandomAccessMemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。可選地,本實施例中的具體示例可以參考上述實施例1中所描述的示例,本實施例在此不再贅述。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。上述實施例中的集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在上述計算機可讀取的存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在存儲介質(zhì)中,包括若干指令用以使得一臺或多臺計算機設備(可為個人計算機、服務器或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。在本發(fā)明的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。在本發(fā)明所提供的幾個實施例中,應該理解到,所揭露的客戶端,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本
技術領域:
的 普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。當前第1頁1 2 3