数据推送方法、装置、系统和终端设备与流程

文档序号:16754196发布日期:2019-01-29 17:11阅读:180来源:国知局
数据推送方法、装置、系统和终端设备与流程

本申请涉及数据通信技术领域,尤其涉及一种数据推送方法、装置、系统和终端设备。



背景技术:

现有相关技术中,苹果手机在推送通知时,是由苹果推送通知服务(applepushnotificationservice;以下简称:apns)服务器提供推送接口来实现的,然而上述推送接口只能针对某个设备发送通知,如果需要按照分组群发,只有在服务器已经划分好的分组才可以实现分组群发,但有一些分组是用户在使用过程中才进行的分组,当分组是人为或者在用户使用过程中才产生的分组时,通过上述apns提供的推送接口无法满足分组分发的需求。

现有相关技术中,手机推送用的最多的是可扩展消息处理现场协议(extensiblemessagingandpresenceprotocol;以下简称:xmpp),xmpp可以基于传输控制协议(transmissioncontrolprotocol;以下简称:tcp)长连接,上传可扩展标记语言(extensiblemarkuplanguage;以下简称:xml)格式的数据流,是目前即时通讯使用的主要技术。xmpp手机客户端与xmpp服务器使用xmpp协议进行tcp认证后,建立长连接,为了维护这个tcp长连接xmpp手机客户端需要每隔一段时间发一个心跳包,苹果公司开发的移动操作系统(ios)会监控占用内存较多的应用程序并主动关闭占用内存较多的应用程序,使得手机客户端无法满足实时在线,也就无法满足实时收到通知的需求,推送通知成功率不高。



技术实现要素:

本申请的目的旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的第一个目的在于提出一种数据推送方法。该方法实现了对用户进行分组管理,进而可以实现按分组条件对推送通知进行群发,可以使用户实时接收推送通知,提高了推送通知的发送成功率,提高了用户体验度。

本申请的第二个目的在于提出一种数据推送装置。

本申请的第三个目的在于提出一种终端设备。

本申请的第四个目的在于提出一种数据推送系统。

本申请的第五个目的在于提出一种非临时性计算机可读存储介质。

为了实现上述目的,本申请第一方面实施例的数据推送方法,包括:获取登录应用程序的用户的分组信息;通过网页服务webservice服务器将所述用户的分组信息发送到发布订阅服务器,以使所述发布订阅服务器根据所述用户的分组信息对所述用户的订阅主题进行更新;接收推送服务器发送的推送通知,所述推送通知是推送服务器根据推送条件确定订阅主题,并根据所述订阅主题从所述发布订阅服务器获取所述订阅主题的订阅者列表,向所述订阅者列表中的用户推送的;将所述推送通知显示给所述用户。

本申请实施例的数据推送方法中,获取登录应用程序的用户的分组信息之后,通过网页服务(webservice)服务器将上述用户的分组信息发送到发布订阅服务器,以使上述发布订阅服务器根据上述用户的分组信息对上述用户的订阅主题进行更新,然后接收推送服务器发送的推送通知,将上述推送通知显示给上述用户,从而可以实现采用webservice技术,获取登录应用程序的用户的最新的分组数据,对用户进行分组管理,进而可以实现按分组条件对推送通知进行群发,可以使用户实时接收推送通知,提高了推送通知的发送成功率,提高了用户体验度。

为了实现上述目的,本申请第二方面实施例的数据推送装置,包括:获取模块,用于获取登录应用程序的用户的分组信息;发送模块,用于通过网页服务webservice服务器将所述用户的分组信息发送到发布订阅服务器,以使所述发布订阅服务器根据所述用户的分组信息对所述用户的订阅主题进行更新;接收模块,用于接收推送服务器发送的推送通知,所述推送通知是推送服务器根据推送条件确定订阅主题,并根据所述订阅主题从所述发布订阅服务器获取所述订阅主题的订阅者列表,向所述订阅者列表中的用户推送的;显示模块,用于将所述推送通知显示给所述用户。

本申请实施例的数据推送装置中,获取模块获取登录应用程序的用户的分组信息之后,发送模块通过webservice服务器将上述用户的分组信息发送到发布订阅服务器,以使上述发布订阅服务器根据上述用户的分组信息对上述用户的订阅主题进行更新,然后接收模块接收推送服务器发送的推送通知,显示模块将上述推送通知显示给上述用户,从而可以实现采用webservice技术,获取登录应用程序的用户的最新的分组数据,对用户进行分组管理,进而可以实现按分组条件对推送通知进行群发,可以使用户实时接收推送通知,提高了推送通知的发送成功率,提高了用户体验度。

为了实现上述目的,本申请第三方面实施例提出了一种终端设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的方法。

为了实现上述目的,本申请第四方面实施例提出了一种数据推送系统,包括:终端设备、网页服务webservice服务器、发布订阅服务器和推送服务器;所述终端设备,用于获取登录所述终端设备中安装的应用程序的用户的分组信息,通过所述webservice服务器将所述用户的分组信息发送到所述发布订阅服务器,接收所述推送服务器发送的推送通知,将所述推送通知显示给所述用户;所述发布订阅服务器,用于接收所述终端设备发送的用户的分组信息,根据所述用户的分组信息对所述用户的订阅主题进行更新;所述推送服务器,用于根据推送条件确定订阅主题,并根据所述订阅主题从所述发布订阅服务器获取所述订阅主题的订阅者列表,将推送通知发送给所述订阅者列表中的用户。

为了实现上述目的,本申请第五方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请数据推送方法一个实施例的流程图;

图2为本申请数据推送方法另一个实施例的流程图;

图3为本申请数据推送方法再一个实施例的流程图;

图4为本申请数据推送装置一个实施例的结构示意图;

图5为本申请终端设备一个实施例的结构示意图;

图6为本申请手机10内部部分一个实施例的结构示意图;

图7为本申请数据推送系统一个实施例的结构示意图;

图8为本申请数据推送系统中发布-订阅模式的结构图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

图1为本申请数据推送方法一个实施例的流程图,如图1所示,上述数据推送方法可以包括:

步骤101,获取登录应用程序的用户的分组信息。

本实施例中,对用户进行了分组,上述用户的分组信息可以包括上述用户订阅的分组主题,每个用户可以订阅至少一个分组主题,举例来说,分组主题可以为车型“唐”,或者动力系统“混合动力”等等。

步骤102,通过网页服务(webservice)服务器将上述用户的分组信息发送到发布订阅服务器,以使上述发布订阅服务器根据上述用户的分组信息对上述用户的订阅主题进行更新。

本实施例中,接收到上述用户的分组信息之后,上述发布订阅服务器可以根据上述用户的分组信息对上述用户的订阅主题进行更新,具体地,发布订阅服务器可以将接收到的上述用户的分组信息与之前保存的上述用户的分组信息进行对比,保存接收到的上述用户的分组信息中,相比之前保存的上述用户的分组信息而言,新增的订阅主题,并将接收到的上述用户的分组信息中,相比之前保存的上述用户的分组信息而言,减少的订阅主题,从之前保存的上述用户的分组信息中删除。

也就是说,每次用户登录应用程序,接收到上述用户的分组信息之后,上述发布订阅服务器都会根据上述用户的分组信息对上述用户的订阅主题进行更新,从而保证了推送通知都是根据上述用户的最新的分组信息推送的,提高了推送通知的发送成功率。

步骤103,接收推送服务器发送的推送通知。其中,上述推送通知是推送服务器根据推送条件确定订阅主题,并根据上述订阅主题从上述发布订阅服务器获取上述订阅主题的订阅者列表,向上述订阅者列表中的用户推送的。

其中,根据推送条件确定订阅主题可以为根据至少两个推送条件对订阅主题进行组合,举例来说,推送条件可以为“‘唐’and‘电动’and‘100’”,这表示要将订阅主题“唐”、“电动”和“100”组合为“唐100的纯电动车”这一主题,然后向订阅“唐100的纯电动车”这一主题的用户发送推送通知;或者,推送条件也可以为“‘唐’or‘f6’or‘e6’”,这表示要向订阅主题为“唐”、“f6”或者“e6”的用户发送推送通知。

步骤104,将上述推送通知显示给上述用户。

上述数据推送方法中,获取登录应用程序的用户的分组信息之后,通过网页服务(webservice)服务器将上述用户的分组信息发送到发布订阅服务器,以使上述发布订阅服务器根据上述用户的分组信息对上述用户的订阅主题进行更新,然后接收推送服务器发送的推送通知,将上述推送通知显示给上述用户,从而可以实现采用webservice技术,获取登录应用程序的用户的最新的分组数据,对用户进行分组管理,进而可以实现按分组条件对推送通知进行群发,可以使用户实时接收推送通知,提高了推送通知的发送成功率,提高了用户体验度。

图2为本申请数据推送方法另一个实施例的流程图,如图2所示,本申请图1所示实施例步骤101可以包括:

步骤201,获取登录应用程序的用户的固定分组信息和可变分组信息。

具体地,获取登录应用程序的用户的固定分组信息可以为:在与apns服务器建立连接之后,接收上述apns服务器发送的上述用户所使用的终端设备的令牌标识(tokenid);向上述webservice服务器上传上述用户的登录账号和上述令牌标识;接收上述webservice服务器发送的上述用户的固定分组信息。

其中,上述终端设备可以为智能手机、平板电脑、智能手表或笔记本电脑等智能终端设备,本实施例对上述终端设备的具体形态不作限定。

获取登录应用程序的用户的可变分组信息可以为:获取登录应用程序的用户设置的分组信息或者上述用户在使用上述应用程序的过程中变更的分组信息。也就是说,本实施例中,增加了获取用户人为设置的分组信息或者在使用上述应用程序的过程中变更的分组信息,举例来说,用户在更新应用程序之后,上述应用程序的原版本号由“3.0.0”变为“3.0.1”,或者在用户更换终端设备之后,终端设备的操作系统由“ios7”变为“ios9”,这都将导致用户的分组信息发生变更,本实施例中,在用户登录应用程序之后,不仅获取上述用户的固定分组信息,还获取上述用户的可变分组信息,从而可以保证推送给上述用户的推送通知都是根据上述用户的最新的分组信息推送的,提高了推送通知的发送成功率。

图3为本申请数据推送方法再一个实施例的流程图,如图3所示,本申请图1所示实施例步骤104之后,还可以包括:

步骤301,接收上述用户对上述推送通知的操作信息。

其中,上述操作信息可以为上述用户点击或长按上述推送通知的操作信息,本实施例对上述操作信息的具体操作不作限定。

步骤302,通过上述webservice服务器从数据库中获取历史推送通知。其中,上述历史推送通知是推送服务器在发送上述推送通知之后,将发送的推送通知保存在上述数据库的。

也就是说,本实施例中,推送服务器在发送上述推送通知之后,将发送的推送通知和推送通知的发送结果保存在数据库中,终端设备71中安装的应用程序接收到用户点击推送通知的操作信息之后,可以webservice服务器从数据库中获取推送历史列表,进而可以获取上述推送历史列表中的历史推送通知。

另外,推送者也可通过推送服务器获取数据库中保存的推送历史列表,通过上述推送历史列表查看用户接收和读取推送通知的情况。

图4为本申请数据推送装置一个实施例的结构示意图,本实施例中的数据推送装置可以作为终端设备,或者终端设备的一部分,实现本申请实施例提供的数据推送方法。如图4所示,上述数据推送装置可以包括:获取模块41、发送模块42、接收模块43和显示模块44;

其中,获取模块41,用于获取登录应用程序的用户的分组信息;本实施例中,对用户进行了分组,上述用户的分组信息可以包括上述用户订阅的分组主题,每个用户可以订阅至少一个分组主题,举例来说,分组主题可以为车型“唐”,或者动力系统“混合动力”等等。

发送模块42,用于通过webservice服务器将上述用户的分组信息发送到发布订阅服务器,以使上述发布订阅服务器根据上述用户的分组信息对上述用户的订阅主题进行更新;本实施例中,接收到上述用户的分组信息之后,上述发布订阅服务器可以根据上述用户的分组信息对上述用户的订阅主题进行更新,具体地,发布订阅服务器可以将接收到的上述用户的分组信息与之前保存的上述用户的分组信息进行对比,保存接收到的上述用户的分组信息中,相比之前保存的上述用户的分组信息而言,新增的订阅主题,并将接收到的上述用户的分组信息中,相比之前保存的上述用户的分组信息而言,减少的订阅主题,从之前保存的上述用户的分组信息中删除。

也就是说,每次用户登录应用程序,接收到上述用户的分组信息之后,上述发布订阅服务器都会根据上述用户的分组信息对上述用户的订阅主题进行更新,从而保证了推送通知都是根据上述用户的最新的分组信息推送的,提高了推送通知的发送成功率。

接收模块43,用于接收推送服务器发送的推送通知,上述推送通知是推送服务器根据推送条件确定订阅主题,并根据上述订阅主题从上述发布订阅服务器获取上述订阅主题的订阅者列表,向上述订阅者列表中的用户推送的;其中,根据推送条件确定订阅主题可以为根据至少两个推送条件对订阅主题进行组合,举例来说,推送条件可以为“‘唐’and‘电动’and‘100’”,这表示要将订阅主题“唐”、“电动”和“100”组合为“唐100的纯电动车”这一主题,然后向订阅“唐100的纯电动车”这一主题的用户发送推送通知;或者,推送条件也可以为“‘唐’or‘f6’or‘e6’”,这表示要向订阅主题为“唐”、“f6”或者“e6”的用户发送推送通知。

显示模块44,用于将上述推送通知显示给上述用户。

本实施例中,获取模块41,具体用于获取登录应用程序的用户的固定分组信息和可变分组信息。

在本实施例的一种实现方式中,获取模块41,具体用于在与apns服务器建立连接之后,接收上述apns服务器发送的上述用户所使用的终端设备的令牌标识,向上述webservice服务器上传上述用户的登录账号和上述令牌标识;以及接收上述webservice服务器发送的上述用户的固定分组信息。

其中,上述终端设备可以为智能手机、平板电脑、智能手表或笔记本电脑等智能终端设备,本实施例对上述终端设备的具体形态不作限定。

在本实施例的另一种实现方式中,获取模块41,具体用于获取登录应用程序的用户设置的分组信息或者上述用户在使用上述应用程序的过程中变更的分组信息。

也就是说,本实施例中,增加了获取用户人为设置的分组信息或者在使用上述应用程序的过程中变更的分组信息,举例来说,用户在更新应用程序之后,上述应用程序的原版本号由“3.0.0”变为“3.0.1”,或者在用户更换终端设备之后,终端设备的操作系统由“ios7”变为“ios9”,这都将导致用户的分组信息发生变更,本实施例中,在用户登录应用程序之后,不仅获取上述用户的固定分组信息,还获取上述用户的可变分组信息,从而可以保证推送给上述用户的推送通知都是根据上述用户的最新的分组信息推送的,提高了推送通知的发送成功率。

进一步地,接收模块43,还用于在显示模块44将上述推送通知显示给上述用户之后,接收上述用户对上述推送通知的操作信息;其中,上述操作信息可以为上述用户点击或长按上述推送通知的操作信息,本实施例对上述操作信息的具体操作不作限定。

获取模块41,还用于通过上述webservice服务器从数据库中获取历史推送通知,上述历史推送通知是推送服务器在发送上述推送通知之后,将发送的推送通知保存在上述数据库的。

也就是说,本实施例中,推送服务器在发送上述推送通知之后,将发送的推送通知和推送通知的发送结果保存在数据库中,应用程序接收到用户点击推送通知的操作信息之后,可以webservice服务器从数据库中获取推送历史列表,进而可以获取上述推送历史列表中的历史推送通知。

另外,推送者也可通过推送服务器获取数据库中保存的推送历史列表,通过上述推送历史列表查看用户接收和读取推送通知的情况。

上述数据推送装置中,获取模块41获取登录应用程序的用户的分组信息之后,发送模块42通过webservice服务器将上述用户的分组信息发送到发布订阅服务器,以使上述发布订阅服务器根据上述用户的分组信息对上述用户的订阅主题进行更新,然后接收模块43接收推送服务器发送的推送通知,显示模块44将上述推送通知显示给上述用户,从而可以实现采用webservice技术,获取登录应用程序的用户的最新的分组数据,对用户进行分组管理,进而可以实现按分组条件对推送通知进行群发,可以使用户实时接收推送通知,提高了推送通知的发送成功率,提高了用户体验度。

图5为本申请终端设备一个实施例的结构示意图,上述终端设备可以包括存储器、处理器及存储在上述存储器上并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时,可以实现本申请实施例提供的数据推送方法。

本实施例以上述终端设备为智能手机为例进行说明。

应该理解的是,图5所示的手机10仅仅是上述终端设备的一个范例,并且手机10可以具有比图5中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图5中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。

现以手机10为一个例子进行具体的说明。如图5所示,该手机10可以包括存储器11、中央处理器(centralprocessingunit;以下简称:cpu)12、外设接口13、射频(radiofrequency;以下简称:rf)电路14、音频电路15、扬声器16、电源系统17、输入/输出(inputoutput;以下简称:i/o)子系统18、其他输入/控制设备19以及外部端口20,这些部件通过一个或多个通信总线或信号线21来通信。

下面就本实施例提供的手机进行详细的描述。

存储器11:所述存储器11可以被cpu12、外设接口13等访问,所述存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

外设接口13,所述外设接口可以将手机10的输入和输出外设连接到cpu12和存储器11。

i/o子系统18:所述i/o子系统18可以将手机10上的输入输出外设,例如触摸屏22和其他输入/控制设备19,连接到外设接口13。i/o子系统18可以包括显示控制器181和用于控制其他输入/控制设备19的一个或多个输入控制器182。其中,一个或多个输入控制器182从其他输入/控制设备19接收电信号或者向其他输入/控制设备19发送电信号,其他输入/控制设备19可以包括物理按钮(例如:按压按钮或摇臂按钮等)、拨号盘、滑动开关、操纵杆或点击滚轮。值得说明的是,输入控制器182可以与以下任一个连接:键盘、红外端口、usb接口以及诸如鼠标的指示设备。

触摸屏22:所述触摸屏22是手机10与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。

i/o子系统18中的显示控制器181从触摸屏22接收电信号或者向触摸屏22发送电信号。触摸屏22检测触摸屏上的接触,显示控制器181将检测到的接触转换为与显示在触摸屏22上的用户界面对象的交互,即实现人机交互,显示在触摸屏22上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,手机10还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。

rf电路14,主要用于建立手机10与无线网络(即网络侧)的通信,实现手机10与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,rf电路14接收并发送rf信号,rf信号也称为电磁信号,rf电路14将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。rf电路14可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、rf收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编译码器(coderdecoder;以下简称:codec)芯片组、用户标识模块(subscriberidentitymodule;以下简称:sim)等等。

音频电路15,主要用于从外设接口13接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器16。

扬声器16,用于将手机10通过rf电路14从无线网络接收的语音信号,还原为声音并向用户播放该声音。

电源系统17,用于为cpu12、i/o子系统18及外设接口13所连接的硬件进行供电及电源管理。电源系统17可以包括电源管理系统,一个或多个电源(例如:电池或交流电),再充电系统,电源故障检测电路,电源转换器或逆变器,电源状态指示器(例如:发光二极管),以及与便携设备中的电源生成、管理和分布相关联的其他任何组件。

图6为本申请手机10内部部分一个实施例的结构示意图。在本申请实施例中,存储器11中存储的软件部件可包括操作系统1001、通信模块1002、接触/移动模块1003、图形模块1004、功能模块1005。

操作系统1001(例如:darwin、rtxc、linux、unix、osx、windows、或诸如vxworks的嵌入式操作系统)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电力管理等等)的各种软件部件和/或驱动器,并且便于各种硬件与软件部件之间的通信。

通信模块1002便于通过一个或多个外部端口20与其他设备通信,并且还包括用于处理由rf电路14和/或外部端口20接收的数据的各种软件部件。

接触/移动模块1003可以检测与触摸屏22(结合显示控制器181)和其他触摸敏感设备(例如,触摸板或物理点击滚轮)的接触。接触/移动模块1003包括用于执行与检测接触相关的各种操作的各种软件部件,所述操作例如有确定是否发生接触、确定是否所述接触有移动并且在触摸屏22上追踪所述移动、以及确定是否已经断开所述接触(即,是否接触已经停止)。确定接触点的移动可以包括确定接触点的速率(幅值)、速度(幅值和方向)和/或加速度(幅值和/或方向的变化)。这些操作可以应用到单个接触(例如,一个手指接触)或应用到多个同时接触(例如,“多重触摸”/多手指接触)。在一些实施例中,接触/移动模块1003和显示控制器181还检测触摸板上的接触。

图形模块1004包括用于在触摸屏22上显示图形的各种已知软件部件,包括用于改变所显示的图形的明暗度的部件。例如接收cpu12的指令,在触摸屏22中显示各种软件的图形用户界面等。

功能模块1005通过运行存储在存储器11中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例提供的数据推送方法。

rf电路14接收网络侧或其他设备发送的消息,该消息包括电子邮件或短信息或即时信息,该消息具体可以是本申请图1~图3所示实施例中的消息。可以理解的是,rf电路14接收的消息也可以是其他类型的消息,在本申请实施例中不做限定。本领域技术人员可知,接收到的消息中可以携带有多种数据类型的数据。可以只有一种数据类型的数据,也可以有两种或两种以上数据类型的数据。

cpu12执行存储在存储器11中的程序时,实现本申请实施例提供的数据推送方法。

图7为本申请数据推送系统一个实施例的结构示意图,如图7所示,上述数据推送系统可以包括:终端设备71、网页服务webservice服务器72、发布订阅服务器73和推送服务器74;

终端设备71,用于获取登录上述终端设备71中安装的应用程序的用户的分组信息,通过上述webservice服务器72将上述用户的分组信息发送到上述发布订阅服务器73,接收推送服务器74发送的推送通知,将上述推送通知显示给上述用户;其中,终端设备71可以采用本申请图5所示实施例提供的终端设备。

发布订阅服务器73,用于接收上述终端设备71发送的用户的分组信息,根据上述用户的分组信息对上述用户的订阅主题进行更新;本实施例中,对用户进行了分组,上述用户的分组信息可以包括上述用户订阅的分组主题,每个用户可以订阅至少一个分组主题,举例来说,分组主题可以为车型“唐”,或者动力系统“混合动力”等等。接收到上述用户的分组信息之后,上述发布订阅服务器73可以根据上述用户的分组信息对上述用户的订阅主题进行更新,具体地,发布订阅服务器73可以将接收到的上述用户的分组信息与之前保存的上述用户的分组信息进行对比,保存接收到的上述用户的分组信息中,相比之前保存的上述用户的分组信息而言,新增的订阅主题,并将接收到的上述用户的分组信息中,相比之前保存的上述用户的分组信息而言,减少的订阅主题,从之前保存的上述用户的分组信息中删除。

也就是说,每次用户登录应用程序,接收到上述用户的分组信息之后,上述发布订阅服务器73都会根据上述用户的分组信息对上述用户的订阅主题进行更新,从而保证了推送通知都是根据上述用户的最新的分组信息推送的,提高了推送通知的发送成功率。

推送服务器74,用于根据推送条件确定订阅主题,并根据上述订阅主题从发布订阅服务器73获取上述订阅主题的订阅者列表,将推送通知发送给上述订阅者列表中的用户。其中,根据推送条件确定订阅主题可以为根据至少两个推送条件对订阅主题进行组合,举例来说,推送条件可以为“‘唐’and‘电动’and‘100’”,这表示要将订阅主题“唐”、“电动”和“100”组合为“唐100的纯电动车”这一主题,然后向订阅“唐100的纯电动车”这一主题的用户发送推送通知;或者,推送条件也可以为“‘唐’or‘f6’or‘e6’”,这表示要向订阅主题为“唐”、“f6”或者“e6”的用户发送推送通知。

本实施例中,终端设备71,具体用于获取登录应用程序的用户的固定分组信息和可变分组信息。

进一步地,上述数据推送系统还可以包括:apns服务器75;

一种实现方式中,终端设备71,具体用于在与apns服务器75建立连接之后,接收apns服务器75发送的终端设备71的令牌标识,向上述webservice服务器72上传上述用户的登录账号和上述令牌标识,接收上述webservice服务器72发送的上述用户的固定分组信息。

其中,上述终端设备71可以为智能手机、平板电脑、智能手表或笔记本电脑等智能终端设备,本实施例对上述终端设备71的具体形态不作限定,但本实施例以终端设备71为智能手机为例进行说明。

另一种实现方式中,终端设备71,具体用于获取登录应用程序的用户设置的分组信息或者上述用户在使用上述应用程序的过程中变更的分组信息。

也就是说,本实施例中,增加了获取用户人为设置的分组信息或者在使用上述应用程序的过程中变更的分组信息,举例来说,用户在更新应用程序之后,上述应用程序的原版本号由“3.0.0”变为“3.0.1”,或者在用户更换终端设备71之后,终端设备71的操作系统由“ios7”变为“ios9”,这都将导致用户的分组信息发生变更,本实施例中,在用户登录应用程序之后,不仅获取上述用户的固定分组信息,还获取上述用户的可变分组信息,从而可以保证推送给上述用户的推送通知都是根据上述用户的最新的分组信息推送的,提高了推送通知的发送成功率。

进一步地,上述数据推送系统还可以包括:数据库76;

推送服务器74,还用于在发送上述推送通知之后,将发送的推送通知和发送上述推送通知的结果保存在数据库76中;

终端设备71,还用于接收上述用户对上述推送通知的操作信息,通过上述webservice服务器72从数据库76中获取历史推送通知。

其中,上述操作信息可以为上述用户点击或长按上述推送通知的操作信息,本实施例对上述操作信息的具体操作不作限定。

也就是说,本实施例中,推送服务器74在发送上述推送通知之后,将发送的推送通知和推送通知的发送结果保存在数据库76中,终端设备71中安装的应用程序接收到用户点击推送通知的操作信息之后,可以通过webservice服务器72从数据库76中获取推送历史列表,进而可以获取上述推送历史列表中的历史推送通知。

另外,推送者也可通过推送服务器74获取数据库76中保存的推送历史列表,通过上述推送历史列表查看用户接收和读取推送通知的情况。

本实施例中,终端设备71通过tcp连接apns服务器75,请求令牌标识,并将登录终端设备71中安装的应用程序的用户的登录账号和上述终端设备71的令牌标识上传到webservice服务器72,webservice服务器72可以将上述用户的登录账号和上述终端设备71的令牌标识保存到数据库76中,使用上述终端设备71的用户为订阅者。

webservice服务器72是终端设备71与数据库76之间的数据通路,接收到上述用户的登录账号和上述终端设备71的令牌标识之后,webservice服务器72直接将上述用户的登录账号和上述终端设备71的令牌标识存入数据库76;接收终端设备71发送的上述用户的分组信息,将上述用户的分组信息发送给发布订阅服务器73。

apns服务器75生成终端设备71的令牌标识,并将上述令牌标识发送给终端设备71,向推送者提供用于给终端设备71发送推送通知的接口。

发布订阅服务器72负责把订阅者与订阅主题存入数据库,按订阅主题获取订阅者列表信息给推送服务器74。

实现上述发布订阅服务器72首先要通过发布-订阅模式的设计对订阅者和发送者进行解耦,对用户实现分组管理,发布-订阅模式的结构图可以如图8所示,图8为本申请数据推送系统中发布-订阅模式的结构图,登录应用程序的用户即订阅者可以订阅多个主题,推送者即发布者可以向发布多个主题发布推送通知。

数据库76负责数据的存储,数据库76用于存储用户的登录账户与终端设备71的令牌标识的对应信息,订阅主题,订阅关系信息,历史推送通知和推送通知的推送结果。

推送服务器74是发布-订阅模型中的发布者,针对推送条件确定订阅主题,根据上述订阅主题获取上述订阅主题的订阅者列表之后,调用apns服务器75的推送接口发送推送通知到apns服务器75,进而由apns服务器75将推送通知发送给终端设备71,然后推送服务器74将发送的推送通知和发送上述推送通知的结果存储到数据库76中。

本申请实施例提出了一种基于webservice技术和apns服务器推送相结合的数据推送方法、装置、系统和终端设备,采用webservice技术,在用户每次登陆终端设备上安装的应用程序时,上传上述用户最新的分组信息,通过发布-订阅模式的设计对订阅者和发送者进行解耦对用户实现分组管理;然后利用apns服务器的推送接口按推送条件群发推送通知到终端设备。

本申请实施例还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时可以实现本申请实施例提供的数据推送方法。

上述非临时性计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(readonlymemory;以下简称:rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory;以下简称:eprom)或闪存、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localareanetwork;以下简称:lan)或广域网(wideareanetwork;以下简称:wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(programmablegatearray;以下简称:pga),现场可编程门阵列(fieldprogrammablegatearray;以下简称:fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1