获取离线消息的到达率的方法、装置及系统与流程

文档序号:11930631阅读:315来源:国知局
获取离线消息的到达率的方法、装置及系统与流程
本发明涉及通信领域,具体而言,涉及一种获取离线消息的到达率的方法、装置及系统。
背景技术
:现有技术中,当智能移动终端上的应用程序没有启动或者不在前台运行时,可以通过系统推送的离线消息来告知用户该应用程序有新消息,如图1所示,以使用iOS系统的智能手机(如iPhone)为例,对离线消息的推送流程进行说明,该流程可以分为如下三个阶段:第一阶段:APP服务器101’把要发送的离线消息、目标iPhone105’(图1中仅示出3个以作示例说明)的标识信息打包,然后将数据包发送给APNS103’。第二阶段:APNS将在自身的已注册推送服务的iPhone列表中,查找有相应标识的iPhone,并把离线消息发到该iPhone。第三阶段:iPhone把发来的离线消息传递给相应的APP,并按照系统设置弹出推送通知。为了衡量推送系统(如图1中的APNS)推送离线消息的稳定性和可用性是否满足应用程序提供商的需求,需要统计离线消息的到达率。其中,统计到达率分别需要统计服务器端一共发送了多少离线消息,以及客户端一共接收到了多少离线消息。从推送流程上看,这两方面的数据都是没有办法准确获取到的,具体理由如下:从服务器的角度来看,推送的离线消息是发送给APNS的,应用程序服务器只能统计到推送至APNS的离线消息的数量,而APNS不会反馈消 息给应用程序服务器,以告知服务器其接收到了多少离线消息,因此在推送至APNS的过程中,有可能会有部分离线消息在传输过程中丢失;并且推送给APNS不代表真正推送给客户端,有可能一部分离线消息并没有推送给客户端,从而造成从服务器端来统计的离线消息推送总量不够准确。从客户端的角度看,客户端只有在两种场景下,才能知道收到了一个离线推送:1)、客户端在前台运行;2)、客户端点击收到的离线消息,打开APP。而在以下3种情况下,客户端均无法知道其收到了推送的离线消息:1、客户端收到离线消息,但是用户从通知栏将推送消息清理掉;2、客户端收到多条离线消息,但是用户只点击其中一条,其他离线消息是没有办法获取到的;3、客户端收到离线消息,但是用户直接打开APP,这时候也没有办法获取到离线消息。这样就造成了客户端收到的离线推送总量统计不够准确。综上所述,因为服务器端统计的离线消息推送总量不够准确,客户端统计到的收到的离线推送总量也不够准确,从而造成离线消息整体的到达率统计不够准确。现有技术中,通常采用发送测试推送包的方式来统计离线消息的到达率。具体地,在用户通过客户端的APP上线后,应用程序服务器收到这个用户的上线消息后,立刻发送一个测试推送消息,客户端收到测试推送消息后,立刻上报一个数据给服务器,由服务器统计一共发出多少测试离线消息,以及收到一共收到多少测试离线消息的上报数据,来统计离线推送的到达率。但是,在上述技术方案中,由于测试推送包和实际离线消息的内容、 大小一般都不一样,从而可能影响推送测试推送包的成功率,进而影响到达率的统计。并且,测试推送包也是基于用户上线来推送的,只有用户上线才会向其发送测试推送包,而这个过程一般是一个平滑的过程,不会再短时间内向客户端推送大量的测试推送包。在这种过程中的网络状况和短时间内推送大量离线消息的网络状况是不一样的,因此,通过测试推送包也无法准确的反馈在短时间内推送大量离线消息的场景下离线消息的到达率。针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种获取离线消息的到达率的方法、装置及系统,以至少解决现有技术中在短时间内推送大量离线消息的场景下,无法准确统计离线消息的到达率的技术问题。根据本发明实施例的一个方面,提供了一种获取离线消息的到达率的方法,包括:在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送离线消息的推送时间;根据向每个目标客户端推送离线消息的推送时间和预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间;统计每个时间区间内所包含的接收到离线消息的目标客户端的第一数量,以及每个时间区间内接收到离线消息返回响应数据的目标客户端的第二数量;根据第一数量和第二数量计算每个时间区间内离线消息的到达率。根据本发明实施例的另一方面,还提供了一种获取离线消息的到达率的装置,包括:第一记录单元,用于在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送离线消息的推送时间;确定单元,用于根据向每个目标客户端推送离线消息的推送时间和预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间;统计单元,用于统计每个时间区间内所包含的接收到离线消息的目标客户端 的第一数量,以及每个时间区间内接收到离线消息返回响应数据的目标客户端的第二数量;计算单元,用于根据第一数量和第二数量计算每个时间区间内离线消息的到达率。根据本发明实施例的另一方面,还提供了一种获取离线消息的到达率的系统,包括:多个目标客户端,用于每隔预设时间向推送代理服务器发送在线时间信息;推送代理服务器,与一个或多个目标客户端通讯,用于在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送离线消息的推送时间,根据向每个目标客户端推送离线消息的推送时间和每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间,统计每个时间区间内所包含的接收到离线消息的目标客户端的第一数量,以及每个时间区间内接收到离线消息返回响应数据的目标客户端的第二数量,以及根据第一数量和第二数量计算每个时间区间内离线消息的到达率。采用本发明实施例,在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送该离线消息的推送时间,并根据预先获取的每个目标客户端的在线时间信息和上述记录的推送时间,确定每个目标客户端所属的时间区间,然后统计每个时间区间内接收到该离线消息的目标客户端的数量以及接收到该离线消息并返回响应数据的目标客户端的数量,以分别计算每个时间区间对应的该离线消息的到达率。通过本发明实施例,通过记录向目标客户端推送实际离线消息的推送时间,以及预先获取的目标客户端的在线时间信息,可以确定目标客户端的在线状态;通过记录的实际离线消息的推送时间和预先获取的目标客户端的在线时间信息,将目标客户端对应到预先划分的时间区间内,并分别统计各个时间区间内对应的离线消息的到达率,可以实现分时间段统计实际离线消息的到达率,无需现有技术中在用户上线之后才能利用测试推送包估算离线消息的到达率,可以真实地反馈在短时间内推送大量离线消息的场景,利用实际离线消息真实、准确地确定离线消息的到达率,不受网络状况的影响。通过本发明实施例,实现了真实、准确地确定离线消息的到达率的技术效 果,进而解决了现有技术中在短时间内推送大量离线消息的场景下,无法准确统计离线消息的到达率的技术问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据现有技术的一种离线消息的推送方法的流程图;图2是根据本发明实施例一的一种用于获取离线消息的到达率的方法的计算机终端的结构框图;图3是根据本发明实施例一的一种获取离线消息的到达率的方法的流程图;图4是根据本发明实施例二的一种获取离线消息的到达率的装置的示意图;图5是根据本发明实施例二的一种可选的获取离线消息的到达率的装置的示意图;图6是根据本发明实施例二的一种可选的获取离线消息的到达率的装置的示意图;图7是根据本发明实施例二的一种可选的获取离线消息的到达率的装置的示意图;图8是根据本发明实施例二的一种可选的获取离线消息的到达率的装置的示意图;图9是根据本发明实施例二的一种可选的获取离线消息的到达率的装置的示意图;图10是根据本发明实施例二的一种可选的获取离线消息的到达率的 装置的示意图;图11是根据本发明实施例三的一种获取离线消息的到达率的系统的示意图;图12是根据本发明实施例三的一种可选的获取离线消息的到达率的系统的示意图;图13是根据本发明实施例三的一种可选的获取离线消息的到达率的系统的示意图;以及图14是根据本发明实施例的一种计算机终端的结构框图。具体实施方式为了使本
技术领域
的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。首先,在对本发明实施例进行描述的过程中出现的部分名词或术语适用于如下解释:APP:Application,中文名称为应用程序,指的是智能移动终端的第 三方应用程序。离线消息:也被称为远程通知,是当应用程序没有启动或者不在前台运行时,告诉用户有新消息的一种途径。一般情况下,当应用程序显示新消息或者下载数据的时候,离线消息由远程服务器(即应用程序服务器)发送,然后通过推送通知服务的服务器推送至客户端,最终通知客户端的应用程序。心跳包:是在客户端和服务器之间定时通知对方自己状态(在线)的一个自定义的命令字,按照一定的时间间隔发送,类似于心跳,所以称为心跳包。在本发明实施例中,心跳时间指的是服务器接收到客户端发送的心跳包的时间。APNS:ApplePushNotificationService,中文名称为苹果推送通知服务,是由苹果公司提供的向使用iOS系统的客户端提供离线消息推送通知的服务总称。依托于一个或几个iOS系统常驻进程运作,是全局的,可看作是独立于应用程序之外,而且是客户端和苹果服务器之间的通讯,而非应用程序的提供商服务器。离线消息的到达率:是指客户端接收到的离线消息的总量与应用程序的推送服务器(即上述的提供商服务器)推送的离线消息的总量的比值。iOS系统:是苹果公司开发的移动操作系统。ID:Identification,中文名称为身份标识号。UserID:即用户ID,用来唯一标识用户,例如QQ号码。实施例1本发明实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图2是根据本发明实施例一的一种用于获取离线消息的到达率的方法的计算机终端的结构框图。如图2所示,用于获取离线消息的到达率的方法的计算机终端20 可以包括一个或多个(图中仅示出一个)处理器202(处理器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器204、以及用于通信功能的传输装置206。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端20还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。存储器204可用于存储应用程序软件的软件程序以及模块,如本发明实施例中的获取离线消息的到达率的方法对应的程序指令/模块,处理器202通过运行存储在存储器204内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的获取离线消息的到达率的方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端20。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端20的通信供应商提供的无线网络。在一个实例中,传输装置206包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置206可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。在上述运行环境下,本发明提供了如图3所示的获取离线消息的到达率的方法。图3是根据本发明实施例一的一种获取离线消息的到达率的方法的流程图,该方法可以包括如下步骤:步骤S31,在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送离线消息的推送时间。在一个可选的实施例中,对于每一个离线消息,在目标客户端的推送 代理服务器检测到已经将离线消息推送至多个目标客户端之后,目标客户端的推送代理服务器记录其向每个目标客户端推送该离线消息的推送时间。在上述步骤S31中,目标客户端的推送代理服务器可以将向每个目标客户端推送该离线消息的推送时间记录到数据表中。可选地,目标客户端可以为智能手机、平板电脑等移动终端上安装的应用程序客户端;离线消息可以为某个应用程序客户端对应的一条信息、一项即将到期的日程或者应用程序客户端的远程服务器上的新数据。需要说明的是,在上述步骤S31中,目标客户端的推送代理服务器完成向目标客户端推送该离线消息的操作之后,即可检测到该离线消息推送至目标客户端成功,但是,此时并不代表着目标客户端已经成功接收到了该离线消息。例如,以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。当腾讯新闻APP的远程服务器上有了一条新的时事新闻时,无论目标iPhone上的腾讯新闻APP是否启动或者在前台运行,为了及时使用户了解到该时事新闻,需要向iPhone上的腾讯新闻APP发送一条离线消息以提示用户其腾讯新闻APP有一条新信息。此时,腾讯新闻APP的远程服务器将该离线消息和目标iPhone的标识信息(如iPhone的设备ID)打包成数据包发送给腾讯新闻APP的推送代理服务器,腾讯新闻APP的推送代理服务器将该数据包发送至APNS,然后由APNS按照目标iPhone的设备ID将该离线消息发送到目标iPhone。在上述例子中,当腾讯新闻APP的推送代理服务器将该数据包发送至APNS时,即可检测到该离线消息推送至多个目标客户端成功,此时,腾讯新闻APP的推送代理服务器记录每个目标iPhone上的腾讯新闻APP的标识信息(如UserID)以及推送该离线消息的推送时间(如push_time)。步骤S33,根据向每个目标客户端推送离线消息的推送时间和预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区 间。可选地,对于每一个离线消息,在目标客户端的推送代理服务器检测到离线消息推送至多个目标客户端成功之后,对于该多个目标客户端中的任意一个目标客户端,目标客户端的推送代理服务器根据记录的向该目标客户端推送离线消息的推送时间,以及预先获取的该目标客户端的在线时间信息,将该目标客户端对应到多个预先划分的时间区间中的一个时间区间内,以便分时间段统计离线消息的到达率。在一个可选的实施例中,目标客户端的在线时间信息可以预先缓存在目标客户端的推送代理服务器上。目标客户端的在线时间信息可以通过心跳机制获得。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。在腾讯新闻APP的推送代理服务器记录每个目标iPhone上腾讯新闻APP的标识信息(如UserID)以及推送该离线消息的推送时间(如push_time)之后,对于任意一个目标iPhone,腾讯新闻APP的推送代理服务器根据上述记录的向该目标iPhone推送该离线消息的推送时间push_time以及预先缓存在腾讯新闻APP的推送代理服务器上该目标iPhone上腾讯新闻APP的在线时间信息,确定该目标iPhone上腾讯新闻APP所属的时间区间,以便后续分时间段统计离线消息的到达率。通过本发明上述实施例,通过目标客户端推送该离线消息的推送时间和该目标客户端的在线时间信息,可以判断在推送该离线消息时目标客户端是否在线(如,目标客户端在前台运行),并且,通过预先划分的多个时间区间,可以分别统计不同在线状态的目标客户端的离线消息到达率,以实现利用实际离线消息、分时间段统计离线消息的到达率,从而解决了现有技术中只能在用户上线之后发送与实际离线消息不一致的测试推送包导致统计离线消息到达率不准确的问题。步骤S35,统计每个时间区间内所包含的接收到离线消息的目标客户 端的第一数量,以及每个时间区间内接收到离线消息返回响应数据的目标客户端的第二数量。具体地,在确定每个目标客户端所属的时间区间之后,目标客户端的推送代理服务器分别统计每个时间区间内接收到离线消息的目标客户端的第一数量以及接收到该离线消息并返回响应数据的目标客户端的第二数量。可选地,在目标客户端所在的智能终端接收到该离线消息之后,该智能终端向目标客户端的推送代理服务器返回响应数据,以告知目标客户端的推送代理服务器该智能终端成功接收到了该离线消息,同时,该智能终端将接收到的离线消息传递至目标客户端。在一个可选的实施例中,接收到离线消息的目标客户端指的是目标客户端的推送代理服务器向其发送了离线消息的客户端,而不代表接收到离线消息的目标客户端会返回响应数据。具体地,接收到离线消息的目标客户端可以将该离线消息显示在目标客户端所在的智能终端的通知栏或者在目标客户端的图标上显示数字提示消息,同时,该智能终端还可以播放警告音以提示用户。一旦用户注意到目标客户端有新的信息、时间或者数据,用户可以点击该离线消息以运行目标客户端并访问新的内容。用户也可以选择忽略该离线消息,并将其从通知栏中清除,此时目标客户端不会被激活。需要说明的是,无论用户是否打开该离线消息,只要智能终端接收到了该离线消息,都将向目标客户端的推送代理服务器返回响应于该离线消息的响应数据。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。在腾讯新闻APP的推送代理服务器通过APNS将该离线消息推送至目标iPhone之后,成功接收到该离线消息的目标iPhone将返回响应数据至腾讯新闻APP的推送代理服务器,腾讯新闻APP的推 送代理服务器会统计并记录返回了响应数据的腾讯新闻APP的UserID。在腾讯新闻APP的推送代理服务器确定所有目标iPhone上腾讯新闻APP所属的时间区间之后,分别统计每个时间区间内对应的腾讯新闻APP的数量(如利用UserID进行统计),以及每个时间区间内返回响应数据的腾讯新闻APP的数量。步骤S37,根据第一数量和第二数量计算每个时间区间内离线消息的到达率。可选地,对于任意一个时间区间,根据该时间区间对应的接收到离线消息的目标客户端的第一数量和接收到离线消息并返回响应数据的目标客户端的第二数量,确定该时间区间内该离线消息所对应的到达率。在一个可选的实施例中,对于任意一个离线消息、任意一个时间区间,可以将第一数量与第二数量的比值作为该时间区间内该离线消息的到达率。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。在腾讯新闻APP的推送代理服务器统计完成所有时间区间内对应的腾讯新闻APP的数量(即上述实施例中的第一数量),以及所有时间区间内返回响应数据的腾讯新闻APP的数量(即上述实施例中的第二数量)之后,对于每一个时间区间,计算其对应的第二数量与第一数量的比值作为该时间区间的离线消息到达率。采用本发明实施例,在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送该离线消息的推送时间,并根据预先获取的每个目标客户端的在线时间信息和上述记录的推送时间,确定每个目标客户端所属的时间区间,然后统计每个时间区间内接收到该离线消息的目标客户端的数量以及接收到该离线消息并返回响应数据的目标客户端的数量,以分别计算每个时间区间对应的该离线消息的到达率。通过本发明实施例,通过记录向目标客户端推送实际离线消息的推送时间,以及预先 获取的目标客户端的在线时间信息,可以确定目标客户端的在线状态;通过记录的实际离线消息的推送时间和预先获取的目标客户端的在线时间信息,将目标客户端对应到预先划分的时间区间内,并分别统计各个时间区间内对应的离线消息的到达率,可以实现分时间段统计实际离线消息的到达率,无需现有技术中在用户上线之后才能利用测试推送包估算离线消息的到达率,可以真实地反馈在短时间内推送大量离线消息的场景,利用实际离线消息真实、准确地确定离线消息的到达率,不受网络状况的影响。通过本发明实施例,实现了真实、准确地确定离线消息的到达率的技术效果,进而解决了现有技术中在短时间内推送大量离线消息的场景下,无法准确统计离线消息的到达率的技术问题。根据本发明上述实施例,在步骤S33,根据向每个目标客户端推送离线消息的推送时间和预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间之前,上述的方法还可以包括如下步骤:步骤S321,接收任意一个目标客户端每隔预设时间发送的心跳数据包,其中,心跳数据包中包括目标客户端的标识信息和发送心跳数据包的心跳时间。具体地,在根据向每个目标客户端推送离线消息的推送时间和预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间之前,首先需要获取每个目标客户端的在线时间信息。在一个可选的实施例中,可以通过心跳机制来获取目标客户端的在线时间信息。目标客户端通过每隔预设时间持续向目标客户端的在线状态管理服务器发送心跳数据包的方式告知服务器其仍然在线。若目标客户端的在线状态管理服务器在一定的时间内没有再接到目标客户端发送的心跳数据包,则可以认为该目标客户端离线。可选地,在线状态管理服务器将接收到的目标客户端持续发送的心跳数据包发送至目标客户端的推送代理服务器,该推送代理服务器缓存每个目标客户端的所有心跳数据包。步骤S323,记录接收到的目标客户端的所有心跳数据包,作为目标客户端的在线时间信息。具体地,目标客户端的推送代理服务器记录每个目标客户端发送心跳数据包的所有发送时间,并将其记为该目标客户端的在线时间信息。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP的应用场景为例,对本发明上述实施例进行说明。以某一个目标iPhone上的腾讯新闻APP为例,该腾讯新闻APP每间隔预设时间(如30秒)向腾讯新闻APP的在线状态管理服务器(如OnlineServer)发送Hello心跳包,以告知服务器其处于在线状态,OnlineServer将发送该Hello心跳包的心跳时间与该腾讯新闻APP的UserID关联之后发送至腾讯新闻APP的推送代理服务器(如iOSPushProxy服务器),iOSPushProxy服务器缓存该腾讯新闻APP每次发送心跳包的心跳时间与该腾讯新闻APP的UserID,以便后续确定该腾讯新闻APP的所属的时间分区时调用。在一个可选的实施例中,步骤S31,记录向每个目标终端推送离线消息的推送时间,可以包括:步骤S311,获取向任意一个目标客户端推送离线消息的推送时间。具体地,对于任意一个目标客户端,获取向其推送离线消息的推送时间。步骤S313,从目标客户端的在线时间信息中读取目标客户端最近一次发送心跳数据包的心跳时间。可选地,从上述实施例中记录的该目标客户端的在线时间信息中读取该目标客户端最近一次发送心跳数据包的心跳时间,记为最后心跳时间。步骤S315,将目标客户端的标识信息、向目标客户端推送离线消息的推送时间以及目标客户端最近一次发送心跳数据包的心跳时间关联保存至第一数据表中。具体地,将目标客户端的标识信息、向该目标客户端推送离线消息的推送时间以及该目标客户端的最后心跳时间关联,并保存至第一数据表中。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。以六台iPhone为例,假设这六台iPhone上的腾讯新闻APP的UserID分别为A、B、C、D、E和F,向每个腾讯新闻APP推送离线消息的推送时间为push_time,每个腾讯新闻APP的最后心跳时间为last_hello_time,可以得到第一数据表,如表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………在本发明上述实施例中,步骤S33,根据向每个目标终端推送离线消息的推送时间和预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间,可以包括:步骤S331,从第一数据表中读取向任意一个目标客户端推送离线消息的推送时间与目标客户端最近一次发送心跳数据包的心跳时间。可选地,对于任意一个目标客户端,从第一数据表中读取向其推送离线消息的推送时间以及其最后心跳时间。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。以腾讯新闻APP的标识信息为上述的表1中的UserIDA为例,从表1中读取该腾讯新闻APP的推送时间为push_time_A、其最后心跳时间为last_hello_time_A。步骤S333,计算读取到的推送时间与心跳时间之间的时间差。可选地,对于任意一个目标客户端来说,计算读取到的该目标客户端的推送时间和最后心跳时间之间的差值。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。以腾讯新闻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,根据时间差所属的数值范围确定目标客户端所属的时间区间,其中,在确定目标客户端所属的时间区间之后,将目标客户端的标识信息与目标客户端所属的时间区间关联保存至第二数据表中。具体地,对于任意一个目标客户端来说,根据计算得到的该目标客户端的推送时间与最后心跳时间之间的时间差,确定该时间差所属的数值范围,以确定该目标客户端所属的时间区间,并将该目标客户端的标识信息与其所属的时间区间关联并保持至第二数据包中。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。以六台iPhone为例,假设这六台iPhone上的腾讯新闻APP的UserID分别为A、B、C、D、E和F,向每个腾讯新闻APP推送离线消息的推送时间为push_time,每个腾讯新闻APP的最后心跳时 间为last_hello_time,可以得到第一数据表,如表1所示。分别统计表1中六个腾讯新闻APP的push_time与last_hello_time的时间差,并按照预设的时间区间为(0,1]、(1,2]、(2,3]、……为例,得到数据表2,如表2所示。需要说明的是,在本发明实施例中,时间区间的划分可以按照上报的心跳时间的精度来确定,本发明对此不做具体限定。表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,统计每个时间区间内所包含的接收到离线消息的目标客户端的第一数量,以及每个时间区间内接收到离线消息返回响应数据的目标客户端的第二数量,可以包括:步骤S351,统计第二数据表中任意一个时间区间内所包含的目标客户端的标识信息的总数作为时间区间对应的第一数量。可选地,根据第二数据表中的记录结果,统计每个时间区间内所包含目标客户端的标识信息的总数作为该时间区间内所包含的接收到离线消息的目标客户端的第一数量。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。以上述的表2中的0<|push_time-last_hello_time|<=1这一时间区间为例,该时间区间内所包含的目标客户端的标识信息的总数为3(即A、C和D三个腾讯新闻APP),那么该时间区间对应的第一数 量即为3。步骤S353,获取时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息,并将时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息与时间区间关联保存至第二数据表中。可选地,对于任意一个时间区间,获取该时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息,并将获取到的标识信息与时间区间对应关联之后保存至第二数据表中。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。以上述的表2为例,若返回响应数据的iPhone分别为B、C、D、E和F,其腾讯新闻APP的UserID被记入第二数据表中的ReceiveUserID_list中,那么第二数据表可以更新为表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,统计时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息的总数作为时间区间对应的第二数量。具体地,对于任意一个时间区间,统计其内所包含的返回响应数据的目标客户端的标识信息的总数作为该时间区间对应的第二数量。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、 离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。以上述的表3中的0<|push_time-last_hello_time|<=1这一时间区间为例,该时间区间内所包含的目标客户端的标识信息的总数为3(即A、C和D三个腾讯新闻APP),那么该时间区间对应的第一数量即为3;该时间区间内返回响应数据的目标客户端的标识信息的总数为2(即C和D三个腾讯新闻APP),那么该时间区间对应的第二数量即为2。根据本发明上述实施例,步骤S37,根据第一数量和第二数量计算离线消息的到达率,可以包括:步骤S371,将任意一个时间区间对应的第二数量与第一数量的比值作为时间区间内离线消息的到达率。具体地,对于任意一个时间区间,将其对应的第二数量与第一数量的比值作为该时间区间内该离线消息的到达率,也就是将目标客户端接收到的离线消息的总数与目标客户端的推送代理服务器推送的离线信息的总数的比值作为该离线消息的到达率。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。以上述的表3中的0<|push_time-last_hello_time|<=1这一时间区间为例,该时间区间内所包含的目标客户端的标识信息的总数为3(即A、C和D三个腾讯新闻APP),那么该时间区间对应的第一数量即为3;该时间区间内返回响应数据的目标客户端的标识信息的总数为2(即C和D三个腾讯新闻APP),那么该时间区间对应的第二数量即为2。由上述内容可知,该时间区间对应的离线消息的到达率为2/3。根据本发明上述实施例,对于上述表3,可以得到各个时间区间的离线消息的到达率如表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,接收服务器发送的离线消息,其中,离线消息中至少包括目标客户端所在终端的标识信息和离线消息的消息内容。可选地,在检测离线消息推送至多个目标客户端之前,需要完成将离线消息推送至多个目标客户端的操作。具体地,目标客户端的推送代理服务器接收服务器(如目标客户端的远程服务器)发送的离线消息,其中,该离线消息中包括目标客户端所在智能终端的标识信息和消息内容。在一个可选的实施例中,目标客户端所在智能终端的标识信息可以为智能终端的设备ID。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。当腾讯新闻APP的远程服务器上有了一条新的时事新闻时,无论目标iPhone上的腾讯新闻APP是否启动或者在前台运行,为了及时使用户了解到该时事新闻,需要向iPhone上的腾讯新闻APP发送一条离线消息以提示用户其腾讯新闻APP有一条新信息。此时,腾讯新闻APP的远程服务器将该离线消息和目标iPhone的标识信息(如iPhone的设备ID)打包成数据包发送给腾讯新闻APP的推送代理服务器。步骤S303,将离线消息推送至推送通知服务系统,以使推送通知服务系统按照目标客户端的标识信息将离线消息推送至目标客户端。在一个可选的实施例中,目标客户端的推送代理服务器将包含离线消息的数据包推送至推送通知服务系统,推送通知服务系统在接收到该数据包之后,按照数据包中的终端的标识信息将离线消息发送至对应的终端,然后由终端将该离线消息传递至终端上安装的目标客户端。继续以目标客户端为已注册推送服务的iPhone上的腾讯新闻APP、离线消息为腾讯新闻APP的一个新时事新闻为应用场景为例,对本发明上述实施例进行说明。当腾讯新闻APP的推送代理服务器将该数据包发送至APNS之后,APNS将数据包中的离线消息发送至与iPhone的设备ID对应的iPhone,再由接收到该离线消息的iPhone将消息传递至腾讯新闻APP。需要说明的是,在该实施例中,目标客户端的推送代理服务器将离线消息推送至推送通知服务系统的过程中,以及推送通知服务系统按照目标客户端的标识信息将离线消息推送至目标客户端的过程中,离线消息可能会由于网络状况差等问题而丢失,因此,准确统计离线消息的到达率在衡量推送离线消息的整个系统的稳定性和可用性时就显得非常重要。可选地,在本实施例中,上述获取离线消息的到达率的方法可以应用于如图2所示的计算机终端20所构成的硬件环境中。如图2所示,计算机终端20通过网络与其他计算机终端进行连接,上述网络包括但不限于:广域网、城域网或局域网。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例2根据本发明实施例,还提供了一种用于实施上述获取离线消息的到达率的方法的获取离线消息的到达率的装置,如图4所示,该装置可以包括:第一记录单元41、确定单元43、统计单元45以及计算单元47。其中,第一记录单元41用于在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送离线消息的推送时间。在一个可选的实施例中,对于每一个离线消息,在目标客户端的推送代理服务器检测到已经将离线消息推送至多个目标客户端之后,目标客户端的推送代理服务器记录其向每个目标客户端推送该离线消息的推送时间,其中,目标客户端的推送代理服务器可以将向每个目标客户端推送该离线消息的推送时间记录到数据表中。可选地,目标客户端可以为智能手机、平板电脑等移动终端上安装的应用程序客户端;离线消息可以为某个应用程序客户端对应的一条信息、一项即将到期的日程或者应用程序客户端的远程服务器上的新数据。需要说明的是,目标客户端的推送代理服务器完成向目标客户端推送该离线消息的操作之后,即可检测到该离线消息推送至目标客户端成功,但是,此时并不代表着目标客户端已经成功接收到了该离线消息。确定单元43用于根据向每个目标客户端推送离线消息的推送时间和 预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间。可选地,对于每一个离线消息,在目标客户端的推送代理服务器检测到离线消息推送至多个目标客户端成功之后,对于该多个目标客户端中的任意一个目标客户端,目标客户端的推送代理服务器根据记录的向该目标客户端推送离线消息的推送时间,以及预先获取的该目标客户端的在线时间信息,将该目标客户端对应到多个预先划分的时间区间中的一个时间区间内,以便分时间段统计离线消息的到达率。在一个可选的实施例中,目标客户端的在线时间信息可以预先缓存在目标客户端的推送代理服务器上。目标客户端的在线时间信息可以通过心跳机制获得。通过本发明上述实施例,通过目标客户端推送该离线消息的推送时间和该目标客户端的在线时间信息,可以判断在推送该离线消息时目标客户端是否在线(如,目标客户端在前台运行),并且,通过预先划分的多个时间区间,可以分别统计不同在线状态的目标客户端的离线消息到达率,以实现利用实际离线消息、分时间段统计离线消息的到达率,从而解决了现有技术中只能在用户上线之后发送与实际离线消息不一致的测试推送包导致统计离线消息到达率不准确的问题。统计单元45用于统计每个时间区间内所包含的接收到离线消息的目标客户端的第一数量,以及每个时间区间内接收到离线消息返回响应数据的目标客户端的第二数量。具体地,在确定每个目标客户端所属的时间区间之后,目标客户端的推送代理服务器分别统计每个时间区间内接收到离线消息的目标客户端的第一数量以及接收到该离线消息并返回响应数据的目标客户端的第二数量。可选地,在目标客户端所在的智能终端接收到该离线消息之后,该智 能终端向目标客户端的推送代理服务器返回响应数据,以告知目标客户端的推送代理服务器该智能终端成功接收到了该离线消息,同时,该智能终端将接收到的离线消息传递至目标客户端。在一个可选的实施例中,接收到离线消息的目标客户端指的是目标客户端的推送代理服务器向其发送了离线消息的客户端,而不代表接收到离线消息的目标客户端会返回响应数据。具体地,接收到离线消息的目标客户端可以将该离线消息显示在目标客户端所在的智能终端的通知栏或者在目标客户端的图标上显示数字提示消息,同时,该智能终端还可以播放警告音以提示用户。一旦用户注意到目标客户端有新的信息、时间或者数据,用户可以点击该离线消息以运行目标客户端并访问新的内容。用户也可以选择忽略该离线消息,并将其从通知栏中清除,此时目标客户端不会被激活。需要说明的是,无论用户是否打开该离线消息,只要智能终端接收到了该离线消息,都将向目标客户端的推送代理服务器返回响应于该离线消息的响应数据。计算单元47用于根据第一数量和第二数量计算每个时间区间内离线消息的到达率。可选地,对于任意一个时间区间,根据该时间区间对应的接收到离线消息的目标客户端的第一数量和接收到离线消息并返回响应数据的目标客户端的第二数量,确定该时间区间内该离线消息所对应的到达率。在一个可选的实施例中,对于任意一个离线消息、任意一个时间区间,可以将第一数量与第二数量的比值作为该时间区间内该离线消息的到达率。采用本发明实施例,在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送该离线消息的推送时间,并根据预先获取的每个目标客户端的在线时间信息和上述记录的推送时间,确定每个目标 客户端所属的时间区间,然后统计每个时间区间内接收到该离线消息的目标客户端的数量以及接收到该离线消息并返回响应数据的目标客户端的数量,以分别计算每个时间区间对应的该离线消息的到达率。通过本发明实施例,通过记录向目标客户端推送实际离线消息的推送时间,以及预先获取的目标客户端的在线时间信息,可以确定目标客户端的在线状态;通过记录的实际离线消息的推送时间和预先获取的目标客户端的在线时间信息,将目标客户端对应到预先划分的时间区间内,并分别统计各个时间区间内对应的离线消息的到达率,可以实现分时间段统计实际离线消息的到达率,无需现有技术中在用户上线之后才能利用测试推送包估算离线消息的到达率,可以真实地反馈在短时间内推送大量离线消息的场景,利用实际离线消息真实、准确地确定离线消息的到达率,不受网络状况的影响。通过本发明实施例,实现了真实、准确地确定离线消息的到达率的技术效果,进而解决了现有技术中在短时间内推送大量离线消息的场景下,无法准确统计离线消息的到达率的技术问题。根据本发明上述实施例,如图5所示,上述的装置还可以包括:接收单元51和第二记录单元53。其中,接收单元51用于在根据向每个目标客户端推送离线消息的推送时间和预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间之前,接收任意一个目标客户端每隔预设时间发送的心跳数据包,其中,心跳数据包中包括目标客户端的标识信息和发送心跳数据包的心跳时间。具体地,在根据向每个目标客户端推送离线消息的推送时间和预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间之前,首先需要获取每个目标客户端的在线时间信息。在一个可选的实施例中,可以通过心跳机制来获取目标客户端的在线时间信息。目标客户端通过每隔预设时间持续向目标客户端的在线状态管理服务器发送心跳数据包的方式告知服务器其仍然在线。若目标客户端的 在线状态管理服务器在一定的时间内没有再接到目标客户端发送的心跳数据包,则可以认为该目标客户端离线。可选地,在线状态管理服务器将接收到的目标客户端持续发送的心跳数据包发送至目标客户端的推送代理服务器,该推送代理服务器缓存每个目标客户端的所有心跳数据包。第二记录单元53用于记录接收到的目标客户端的所有心跳数据包,作为目标客户端的在线时间信息。具体地,目标客户端的推送代理服务器记录每个目标客户端发送心跳数据包的所有发送时间,并将其记为该目标客户端的在线时间信息。在一个可选的实施例中,如图6所示,第一记录单元41可以包括:第一获取模块61、第一读取模块63以及保存模块65。其中,第一获取模块61用于获取向任意一个目标客户端推送离线消息的推送时间。具体地,对于任意一个目标客户端,获取向其推送离线消息的推送时间。第一读取模块63用于从目标客户端的在线时间信息中读取目标客户端最近一次发送心跳数据包的心跳时间。可选地,从上述实施例中记录的该目标客户端的在线时间信息中读取该目标客户端最近一次发送心跳数据包的心跳时间,记为最后心跳时间。保存模块65用于将目标客户端的标识信息、向目标客户端推送离线消息的推送时间以及目标客户端最近一次发送心跳数据包的心跳时间关联保存至第一数据表中。具体地,将目标客户端的标识信息、向该目标客户端推送离线消息的推送时间以及该目标客户端的最后心跳时间关联,并保存至第一数据表中。在本发明上述实施例中,如图7所示,确定单元43可以包括:第二 读取模块71、计算模块73以及确定模块75。其中,第二读取模块71用于从第一数据表中读取向任意一个目标客户端推送离线消息的推送时间与目标客户端最近一次发送心跳数据包的心跳时间。可选地,对于任意一个目标客户端,从第一数据表中读取向其推送离线消息的推送时间以及其最后心跳时间。计算模块73用于计算读取到的推送时间与心跳时间之间的时间差。可选地,对于任意一个目标客户端来说,计算读取到的该目标客户端的推送时间和最后心跳时间之间的差值。确定模块75用于根据时间差所属的数值范围确定目标客户端所属的时间区间,其中,在确定目标客户端所属的时间区间之后,将目标客户端的标识信息与目标客户端所属的时间区间关联保存至第二数据表中。具体地,对于任意一个目标客户端来说,根据计算得到的该目标客户端的推送时间与最后心跳时间之间的时间差,确定该时间差所属的数值范围,以确定该目标客户端所属的时间区间,并将该目标客户端的标识信息与其所属的时间区间关联并保持至第二数据包中。需要说明的是,在本发明实施例中,时间区间的划分可以按照上报的心跳时间的精度来确定,本发明对此不做具体限定。在一个可选的实施例中,如图8所示,统计单元45可以包括:第一统计模块81、第二获取模块83以及第二统计模块85。其中,第一统计模块81用于统计第二数据表中任意一个时间区间内所包含的目标客户端的标识信息的总数作为时间区间对应的第一数量。可选地,根据第二数据表中的记录结果,统计每个时间区间内所包含目标客户端的标识信息的总数作为该时间区间内所包含的接收到离线消息的目标客户端的第一数量。第二获取模块83用于获取时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息,并将时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息与时间区间关联保存至第二数据表中。可选地,对于任意一个时间区间,获取该时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息,并将获取到的标识信息与时间区间对应关联之后保存至第二数据表中。第二统计模块85用于统计时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息的总数作为时间区间对应的第二数量。具体地,对于任意一个时间区间,统计其内所包含的返回响应数据的目标客户端的标识信息的总数作为该时间区间对应的第二数量。根据本发明上述实施例,如图9所示,计算单元47可以包括:计算模块91用于将任意一个时间区间对应的第二数量与第一数量的比值作为时间区间内离线消息的到达率。具体地,对于任意一个时间区间,将其对应的第二数量与第一数量的比值作为该时间区间内该离线消息的到达率,也就是将目标客户端接收到的离线消息的总数与目标客户端的推送代理服务器推送的离线信息的总数的比值作为该离线消息的到达率。在一个可选的实施例中,上述的装置还可以包括:推送单元40,用于在记录向每个目标客户端推送离线消息的推送时间之前,将离线消息推送至多个目标客户端,如图10所示,推送单元40可以包括:接收模块1001和推送模块1003。其中,接收模块1001用于接收服务器发送的离线消息,其中,离线消息中至少包括目标客户端所在终端的标识信息和离线消息的消息内容。可选地,在检测离线消息推送至多个目标客户端之前,需要完成将离 线消息推送至多个目标客户端的操作。具体地,目标客户端的推送代理服务器接收服务器(如目标客户端的远程服务器)发送的离线消息,其中,该离线消息中包括目标客户端所在智能终端的标识信息和消息内容。在一个可选的实施例中,目标客户端所在智能终端的标识信息可以为智能终端的设备ID。推送模块1003用于将离线消息推送至推送通知服务系统,以使推送通知服务系统按照目标客户端的标识信息将离线消息推送至目标客户端。在一个可选的实施例中,目标客户端的推送代理服务器将包含离线消息的数据包推送至推送通知服务系统,推送通知服务系统在接收到该数据包之后,按照数据包中的终端的标识信息将离线消息发送至对应的终端,然后由终端将该离线消息传递至终端上安装的目标客户端。需要说明的是,在该实施例中,目标客户端的推送代理服务器将离线消息推送至推送通知服务系统的过程中,以及推送通知服务系统按照目标客户端的标识信息将离线消息推送至目标客户端的过程中,离线消息可能会由于网络状况差等问题而丢失,因此,准确统计离线消息的到达率在衡量推送离线消息的整个系统的稳定性和可用性时就显得非常重要。可选地,在本实施例中,上述获取离线消息的到达率的装置可以应用于如图2所示的计算机终端20所构成的硬件环境中。如图2所示,计算机终端20通过网络与其他计算机终端进行连接,上述网络包括但不限于:广域网、城域网或局域网。实施例3根据本发明实施例,还提供了一种获取离线消息的到达率的系统,如图11所示,该系统包括:多个目标客户端1101(图中仅示出一个)、在线状态管理服务器1103、以及推送代理服务器1105。其中,多个目标客户端1101与在线状态管理服务器通讯,用于每隔预设时间向在线状态管理服务器发送心跳数据包,其中,心跳数据包中包 括目标客户端的标识信息和发送心跳数据包的心跳时间。在一个可选的实施例中,目标客户端通过每隔预设时间持续向在线状态管理服务器发送心跳数据包的方式告知服务器其仍然在线。若目标客户端的在线状态管理服务器在一定的时间内没有再接到目标客户端发送的心跳数据包,则可以认为该目标客户端离线。在线状态管理服务器1103与推送代理服务器通讯,用于接收多个目标客户端的所有心跳数据包,并将多个目标客户端的所有心跳数据包发送至推送代理服务器。可选地,在线状态管理服务器将接收到的目标客户端持续发送的心跳数据包发送至目标客户端的推送代理服务器,该推送代理服务器缓存每个目标客户端的所有心跳数据包。推送代理服务器1105与多个目标客户端通讯,用于在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送离线消息的推送时间,根据向每个目标客户端推送离线消息的推送时间和每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间,统计每个时间区间内所包含的接收到离线消息的目标客户端的第一数量,以及每个时间区间内接收到离线消息返回响应数据的目标客户端的第二数量,以及根据第一数量和第二数量计算每个时间区间内离线消息的到达率,其中,每个目标客户端的在线时间信息包括每个目标客户端的所有心跳数据包。在一个可选的实施例中,对于每一个离线消息,在目标客户端的推送代理服务器检测到已经将离线消息推送至多个目标客户端之后,目标客户端的推送代理服务器记录其向每个目标客户端推送该离线消息的推送时间,其中,目标客户端的推送代理服务器可以将向每个目标客户端推送该离线消息的推送时间记录到数据表中。可选地,目标客户端可以为智能手机、平板电脑等移动终端上安装的应用程序客户端;离线消息可以为某个应用程序客户端对应的一条信息、 一项即将到期的日程或者应用程序客户端的远程服务器上的新数据。需要说明的是,目标客户端的推送代理服务器完成向目标客户端推送该离线消息的操作之后,即可检测到该离线消息推送至目标客户端成功,但是,此时并不代表着目标客户端已经成功接收到了该离线消息。可选地,对于每一个离线消息,在目标客户端的推送代理服务器检测到离线消息推送至多个目标客户端成功之后,对于该多个目标客户端中的任意一个目标客户端,目标客户端的推送代理服务器根据记录的向该目标客户端推送离线消息的推送时间,以及预先获取的该目标客户端的在线时间信息,将该目标客户端对应到多个预先划分的时间区间中的一个时间区间内,以便分时间段统计离线消息的到达率。在一个可选的实施例中,目标客户端的在线时间信息可以预先缓存在目标客户端的推送代理服务器上。目标客户端的在线时间信息可以通过心跳机制获得。通过本发明上述实施例,通过目标客户端推送该离线消息的推送时间和该目标客户端的在线时间信息,可以判断在推送该离线消息时目标客户端是否在线(如,目标客户端在前台运行),并且,通过预先划分的多个时间区间,可以分别统计不同在线状态的目标客户端的离线消息到达率,以实现利用实际离线消息、分时间段统计离线消息的到达率,从而解决了现有技术中只能在用户上线之后发送与实际离线消息不一致的测试推送包导致统计离线消息到达率不准确的问题。可选地,在确定每个目标客户端所属的时间区间之后,目标客户端的推送代理服务器分别统计每个时间区间内接收到离线消息的目标客户端的第一数量以及接收到该离线消息并返回响应数据的目标客户端的第二数量。可选地,在目标客户端所在的智能终端接收到该离线消息之后,该智能终端向目标客户端的推送代理服务器返回响应数据,以告知目标客户端 的推送代理服务器该智能终端成功接收到了该离线消息,同时,该智能终端将接收到的离线消息传递至目标客户端。在一个可选的实施例中,接收到离线消息的目标客户端指的是目标客户端的推送代理服务器向其发送了离线消息的客户端,而不代表接收到离线消息的目标客户端会返回响应数据。具体地,接收到离线消息的目标客户端可以将该离线消息显示在目标客户端所在的智能终端的通知栏或者在目标客户端的图标上显示数字提示消息,同时,该智能终端还可以播放警告音以提示用户。一旦用户注意到目标客户端有新的信息、时间或者数据,用户可以点击该离线消息以运行目标客户端并访问新的内容。用户也可以选择忽略该离线消息,并将其从通知栏中清除,此时目标客户端不会被激活。需要说明的是,无论用户是否打开该离线消息,只要智能终端接收到了该离线消息,都将向目标客户端的推送代理服务器返回响应于该离线消息的响应数据。可选地,对于任意一个时间区间,根据该时间区间对应的接收到离线消息的目标客户端的第一数量和接收到离线消息并返回响应数据的目标客户端的第二数量,确定该时间区间内该离线消息所对应的到达率。在一个可选的实施例中,对于任意一个离线消息、任意一个时间区间,可以将第一数量与第二数量的比值作为该时间区间内该离线消息的到达率。采用本发明实施例,在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送该离线消息的推送时间,并根据预先获取的每个目标客户端的在线时间信息和上述记录的推送时间,确定每个目标客户端所属的时间区间,然后统计每个时间区间内接收到该离线消息的目标客户端的数量以及接收到该离线消息并返回响应数据的目标客户端的数量,以分别计算每个时间区间对应的该离线消息的到达率。通过本发明实施例,通过记录向目标客户端推送实际离线消息的推送时间,以及预先 获取的目标客户端的在线时间信息,可以确定目标客户端的在线状态;通过记录的实际离线消息的推送时间和预先获取的目标客户端的在线时间信息,将目标客户端对应到预先划分的时间区间内,并分别统计各个时间区间内对应的离线消息的到达率,可以实现分时间段统计实际离线消息的到达率,无需现有技术中在用户上线之后才能利用测试推送包估算离线消息的到达率,可以真实地反馈在短时间内推送大量离线消息的场景,利用实际离线消息真实、准确地确定离线消息的到达率,不受网络状况的影响。通过本发明实施例,实现了真实、准确地确定离线消息的到达率的技术效果,进而解决了现有技术中在短时间内推送大量离线消息的场景下,无法准确统计离线消息的到达率的技术问题。根据本发明上述实施例,如图12所示,上述的系统还可以包括:远程服务器1201,与推送代理服务器通讯,用于将离线消息发送至推送代理服务器。可选地,在检测离线消息推送至多个目标客户端之前,需要完成将离线消息推送至多个目标客户端的操作。具体地,目标客户端的推送代理服务器接收服务器(如目标客户端的远程服务器)发送的离线消息,其中,该离线消息中包括目标客户端所在智能终端的标识信息和消息内容。在一个可选的实施例中,目标客户端所在智能终端的标识信息可以为智能终端的设备ID。在一个可选的实施例中,目标客户端的推送代理服务器将包含离线消息的数据包推送至推送通知服务系统,推送通知服务系统在接收到该数据包之后,按照数据包中的终端的标识信息将离线消息发送至对应的终端,然后由终端将该离线消息传递至终端上安装的目标客户端。需要说明的是,在该实施例中,目标客户端的推送代理服务器将离线消息推送至推送通知服务系统的过程中,以及推送通知服务系统按照目标客户端的标识信息将离线消息推送至目标客户端的过程中,离线消息可能会由于网络状况差等问题而丢失,因此,准确统计离线消息的到达率在衡 量推送离线消息的整个系统的稳定性和可用性时就显得非常重要。下面结合图13详细介绍本发明上述实施例。图13是根据本发明实施例三的一种可选的获取离线消息的到达率的系统的示意图,如图13所示,该系统包括:目标客户端1301、OnlineServer(中文名称为在线服务器)1032、事件代理服务器1303、IOSPushProxy(IOS推送代理服务器)1304、Push任务管理系统(推送任务管理系统)1305以及APNS1306。具体地,目标客户端每间隔预设时间(如30秒)向在线状态管理服务器(如OnlineServer)发送Hello心跳包,以告知服务器其处于在线状态;OnlineServer负责接收所有目标客户端发送的Hello心跳包,并将Hello心跳包发送至事件代理服务器;事件代理服务器负责处理接收所有目标客户端的Hello心跳包并将其分发至推送代理服务器(如IOSPushProxy);IOSPushProxy负责将目标客户端的所有Hello心跳包缓存至本地(作为用户心跳信息缓存),接收远程服务器(如Push任务管理系统)发送的离线消息,并将该离线消息推送至推送通知服务系统(如APNS);APNS负责将接收到的离线消息推送至目标客户端。其中,目标客户端在接收到离线消息之后,返回响应数据至推送代理服务器。在该例中,IOSPushProxy在推送离线消息时,需要查询其本地缓存的用户心跳信息,并在将离线消息推送给APNS成功后,记录两个数据:离线消息的推送时间push_time和目标客户端的最后一次心跳时间last_hello_time。并且,目标客户端接收到离线消息后,上报一个收到离线消息的响应数据至IOSPushProxy。在推送离线消息完成后,IOSPushProxy服务器的数据记录如下: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………在统计该离线消息的到达率时,按照push_time与last_hello_time之间的时间差分段统计,细分区间可以根据心跳包的上报时间精度来设置,假设细分区间为1秒,那么有如下数据:|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……统计目标客户端在收到离线消息之后返回的响应数据,根据每个时间区间内哪些用户收到了推送的离线消息,可以计算各个时间区间的离线消息推送的到达率。|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………通过本发明上述实施例,通过目标客户端推送该离线消息的推送时间和该目标客户端的最后一次心跳时间,可以判断在推送该离线消息时目标客户端是否在线,并且,通过预先划分的多个时间区间,可以分别统计不同在线状态的目标客户端的离线消息到达率,可以实现利用实际离线消息、分时间段统计离线消息的到达率,从而解决了现有技术中只能在用户上线之后发送与实际离线消息不一致的测试推送包、且无法测试推送包无法真实反映短时间内推送大量的离线消息时的推送到达率,而导致统计离线消息到达率不准确的问题。可选地,在本实施例中,上述获取离线消息的到达率的系统可以应用于如图2所示的计算机终端20所构成的硬件环境中。如图2所示,计算机终端20通过网络与其他计算机终端进行连接,上述网络包括但不限于:广域网、城域网或局域网。实施例4本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。可选地,图14是根据本发明实施例的一种计算机终端的结构框图。如图14所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1401、存储器1403、以及传输装置1405。其中,存储器1403可用于存储软件程序以及模块,如本发明实施例中的获取离线消息的到达率的方法和装置对应的程序指令/模块,处理器1401通过运行存储在存储器1403内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的获取离线消息的到达率的方法。存储器1403可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1403可进一步包括相对于处理器1401远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。上述的传输装置1405用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1405包括一个网络适配器(NetworkInterfaceController,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1405为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。其中,具体地,存储器1403用于存储预设动作条件和预设权限用户的信息、以及应用程序。处理器1401可以通过传输装置调用存储器1403存储的信息及应用程序,以执行下述步骤:在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送离线消息的推送时间;根据向每个目标客户端推送离线消息的推送时间和预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间;统计每个时间区间内所包含的接收到离线消息的目标客户端的第一数量,以及每个时间区间内接收到离线消息返回响应数据的目标客户端的第二数量;根据第一数量和第二数量计算每个时间区间内离线消息的到达率。可选的,上述处理器1401还可以执行如下步骤的程序代码:接收任意一个目标客户端每隔预设时间发送的心跳数据包,其中,心跳数据包中 包括目标客户端的标识信息和发送心跳数据包的心跳时间;记录接收到的目标客户端的所有心跳数据包,作为目标客户端的在线时间信息。可选的,上述处理器1401还可以执行如下步骤的程序代码:获取向任意一个目标客户端推送离线消息的推送时间;从目标客户端的在线时间信息中读取目标客户端最近一次发送心跳数据包的心跳时间;将目标客户端的标识信息、向目标客户端推送离线消息的推送时间以及目标客户端最近一次发送心跳数据包的心跳时间关联保存至第一数据表中。可选的,上述处理器1401还可以执行如下步骤的程序代码:从第一数据表中读取向任意一个目标客户端推送离线消息的推送时间与目标客户端最近一次发送心跳数据包的心跳时间;计算读取到的推送时间与心跳时间之间的时间差;根据时间差所属的数值范围确定目标客户端所属的时间区间,其中,在确定目标客户端所属的时间区间之后,将目标客户端的标识信息与目标客户端所属的时间区间关联保存至第二数据表中。可选的,上述处理器1401还可以执行如下步骤的程序代码:统计第二数据表中任意一个时间区间内所包含的目标客户端的标识信息的总数作为时间区间对应的第一数量;获取时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息,并将时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息与时间区间关联保存至第二数据表中;统计时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息的总数作为时间区间对应的第二数量。可选的,上述处理器1401还可以执行如下步骤的程序代码:将任意一个时间区间对应的第二数量与第一数量的比值作为时间区间内离线消息的到达率。可选的,上述处理器1401还可以执行如下步骤的程序代码:接收服务器发送的离线消息,其中,离线消息中至少包括目标客户端所在终端的标识信息和离线消息的消息内容;将离线消息推送至推送通知服务系统,以使推送通知服务系统按照目标客户端的标识信息将离线消息推送至目 标客户端。可选地,本实施例中的具体示例可以参考上述实施例1中所描述的示例,本实施例在此不再赘述。实施例5本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以存储上述实施例1的获取离线消息的到达率的方法的程序代码。可选地,在本实施例中,上述存储介质可以位于计算机的网络中的多个网络设备中的至少一个网络设备。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在检测到离线消息推送至多个目标客户端成功之后,记录向每个目标客户端推送离线消息的推送时间;根据向每个目标客户端推送离线消息的推送时间和预先获取的每个目标客户端的在线时间信息,确定每个目标客户端所属的时间区间;统计每个时间区间内所包含的接收到离线消息的目标客户端的第一数量,以及每个时间区间内接收到离线消息返回响应数据的目标客户端的第二数量;根据第一数量和第二数量计算每个时间区间内离线消息的到达率。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:接收任意一个目标客户端每隔预设时间发送的心跳数据包,其中,心跳数据包中包括目标客户端的标识信息和发送心跳数据包的心跳时间;记录接收到的目标客户端的所有心跳数据包,作为目标客户端的在线时间信息。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:接收任意一个目标客户端每隔预设时间发送的心跳数据包,其中,心跳数据包中包括目标客户端的标识信息和发送心跳数据包的心跳时间;记录接收到的目标客户端的所有心跳数据包,作为目标客户端的在线时间信息。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:从 第一数据表中读取向任意一个目标客户端推送离线消息的推送时间与目标客户端最近一次发送心跳数据包的心跳时间;计算读取到的推送时间与心跳时间之间的时间差;根据时间差所属的数值范围确定目标客户端所属的时间区间,其中,在确定目标客户端所属的时间区间之后,将目标客户端的标识信息与目标客户端所属的时间区间关联保存至第二数据表中。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:统计第二数据表中任意一个时间区间内所包含的目标客户端的标识信息的总数作为时间区间对应的第一数量;获取时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息,并将时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息与时间区间关联保存至第二数据表中;统计时间区间内所包含的接收到离线消息并返回响应数据的目标客户端的标识信息的总数作为时间区间对应的第二数量。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:将任意一个时间区间对应的第二数量与第一数量的比值作为时间区间内离线消息的到达率。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:接收服务器发送的离线消息,其中,离线消息中至少包括目标客户端所在终端的标识信息和离线消息的消息内容;将离线消息推送至推送通知服务系统,以使推送通知服务系统按照目标客户端的标识信息将离线消息推送至目标客户端。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,本实施例中的具体示例可以参考上述实施例1中所描述的示例,本实施例在此不再赘述。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的 普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1