技术领域
[0001] 本
发明属于信息处理技术领域,具体涉及一种一个产品含有多个栏目的数据推送方法。
背景技术
[0002] 信息推送技术的
基础思想是将浏览器主动查询信息改为
服务器主动发送信息。服务器发送一批数据,浏览器显示这些数据,同时保证与服务器的连接。当服务器需要再次发送一批数据时,浏览器显示数据并保持连接。以后,服务器仍然可以发送批量数据,浏览器继续显示数据,依次类推。
[0003] 通常,
网站都通过HTTP(超文本传输协议)
接口,以轮询的方式向用户推送数据。其中,该轮询方式实质上是一种带宽
请求竞争机制。
[0004] 当终端数量增多而高并发
访问服务器时,轮询的次数就会频繁;又由于每次终端都要向服务器发送请求头(其包括验证身份信息、主机信息等)等,从而会占用很多带宽,由此会导致服务器宕机,以至于不能够及时地向终端推动信息。
[0005] 因此,而现有的解决方案基本是通过http定时请求,必然造成不确定服务器数据是否有更新而再次对数据进行获取、合并等操作,它不但可能造成不必要的流量损失以及服务器压
力,必然也会导致,客户端在处理数据时的很多不必要的数据合并或者重新获取等操作逻辑。
发明内容
[0006] 为此,本发明提供一种一个产品含有多个栏目的数据推送方法,以解决
现有技术中成不确定服务器数据是否有更新而再次对数据进行获取、合并等操作,它不但可能造成不必要的流量损失以及服务器压力,必然也会导致,客户端在处理数据时的很多不必要的数据合并或者重新获取等操作逻辑的问题。
[0007] 为了实现上述目的,本发明提供如下技术方案:一种一个产品含有多个栏目的数据推送方法,所述方法应用于服务器,客户端与服务器建立长连接;所述推送方法包括以下步骤:
[0008] S1、将客户端中的文本数据,按照
树形结构进行组织,每个树枝表述的是一个栏目数据;
[0009] S2、服务器通过对树的遍历,判断某一个栏目数据是否更新,若更新则向客户端推送更新后的数据;
[0010] S3、服务器判断客户端是否对本栏目进行订阅,若订阅则将数据推送到客户端;
[0011] S4、推送的数据显示在订阅客户端的终端设备上。
[0012] 进一步的,在步骤S2、服务器通过对树的遍历,判断某一个栏目数据是否更新,若更新则向客户端推送更新后的数据中还包括对更新数据的筛选;判断是否符合网络绿色信息规定,若符合,则进行数据推送;若不符合,则将发布该数据的用户进行黑名单处理,并将该数据删除处理。
[0013] 进一步的,所述数据推送方法还包括:当客户端处于离线状态时,则将推送数据推送至该栏目所在的产品中进行缓存;当客户端登录至包含推送数据所在的产品时,产品将缓存的推送数据推送至客户端。
[0014] 进一步的,所述数据推送方法还包括:获取用户当前浏览页面的信息;基于所述用户当前浏览页面的信息,获取所述用户当前浏览页面所展示的数据;基于所述用户当前浏览的页面所展示的数据,确定所述用户感兴趣的主题。
[0015] 进一步的,确定所述用户感兴趣的主题还包括:根据当前用户浏览页面的时长,判断用户是否对所浏览的页面信息感兴趣,若感兴趣则向该用户推送该主题的更新数据;如用户点开浏览页面后,停留浏览的时间为1s-5s内即关闭浏览页面,则判断出用户对该主题不感兴趣,则不进行更新数据的推送;若浏览时间在5s以后,则判断为对该主题感兴趣,则进行该主题的更新数据推送。
[0016] 进一步的,所述方法应用于终端,所述终端与服务器通信连接;所述数据推送方法包括:基于长连接,并通过消息队列遥测传输方式,向服务器发送数据推送请求;其中,数据推送请求包括用户感兴趣的主题,用户感兴趣的主题与目标推送数据相关;基于所述长连接,并通过消息队列遥测传输方式,接收服务器发送的目标推送数据。
[0017] 进一步的,步骤S2、服务器通过对树的遍历,判断某一个栏目数据是否更新,若更新则向客户端推送更新后的数据;服务器判断出某一栏目的数据已经更新后对数据进行存储。
[0018] 进一步的,客户端通过SDK的方式和服务器建立websocket或者TCP链接;数据协议采用松散的文本方式,里面描述字段含义,并根据字段含义将数据存储到树形结构中,方便后期数据的快速获取。
[0019] 进一步的,产品中的每个栏目数据更新可以对应于一个或者多个
节点,在运行业务逻辑的时候根据实际需要,可以分别对于栏目中的数据进行获取,或者进行任意的组合。
[0020] 进一步的,数据推送方法还包括如下系统:接入模
块:根据业务需要,接入层提供数据获取和实时数据推送接口;处理模块:对于系统中的数据进行存储,转发等功能。
[0021] 本发明具有如下优点:将客户端中的文本数据,按照树形结构进行组织,每个树枝表述的是一个栏目数据;服务器通过对树的遍历,判断某一个栏目数据是否更新,若更新则向客户端推送更新后的数据;可以快速的获取自己想要的数据,无需对数据进行二维化处理,减少二维化查询的复杂度,这样组织数据直观,高效,对于某些数据节点需要更新,采用订阅节点更新事件,在有新的数据更新时,通过对于已经对于树节点关注的上下文对象的推送功能将数据推送到客户端中,这样客户端可以对推送过来的数据直接进行本地缓存的更新以及数据展现部分的更新,减少不必要的其他复杂的
数据处理逻辑;服务器判断客户端是否对本栏目进行订阅,若订阅则将数据推送到客户端在服务器端有数据更新时,可以根据用户对数据的订阅,来实现数据的实时推送功能。解决数据获取以及快速分发的问题;客户端在收到
数据库,可以快速的根据数据的展现逻辑将数据展现在终端中,这样可以使客户快速的看到自己关注的数据的变化;提高客户端的实时性以及简化数据更新的逻辑。
附图说明
[0022] 为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
[0023] 本
说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
[0024] 图1是本发明
实施例提供的一种一个产品含有多个栏目的数据推送方法的
流程图;
[0025] 图2是本发明实施例提供的一种一个产品含有多个栏目的数据推送方法的系统结构示意图。
具体实施方式
[0026] 下面通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027] 需要说明的是,下文描述在所附
权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本发明,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
[0028] 还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0029] 另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
[0030] 以网页浏览为例,例如某一浏览器产品包含有多个栏目模块,客户在使用浏览器浏览某一栏目时,要想知道自己订阅的栏目是否有更新,则需要退出当前浏览的栏目,然后进行页面刷新,因此就会造成不必要的流量损失,和多余的逻辑操作。
[0031] 本发明实施例提供的一种一个产品含有多个栏目的数据推送方法,请参阅图1所示,所述方法应用于服务器,客户端与服务器建立长连接;客户端通过SDK(
软件开发工具包(缩写:SDK、外语全称:Software Development Kit)一般都是一些
软件工程师为特定的
软件包、软件
框架、
硬件平台、
操作系统等建立
应用软件时的开发工具的集合)的方式和服务器建立websocket(WebSocket协议是基于TCP的一种新的网络协议)或者TCP(TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义)链接;数据协议采用松散的文本方式,里面描述字段含义,并根据字段含义将数据存储到树形结构中,方便后期数据的快速获取;所述推送方法包括以下步骤:S1、将客户端中的文本数据,按照树形结构进行组织,每个树枝表述的是一个栏目数据;浏览器作为树主干,每一个栏目作为树的树枝,数据的组织,将客户端中的文本数据,按照树形结构进行组织,每个树枝表述的是一个含义、另外的含义可以保留在其他树枝下面。通过对数的遍历,可以快速的获取自己想要的数据,无需对数据进行二维化处理,减少二维化查询的复杂度,这样组织数据直观,高效,对于某些数据节点需要更新,采用订阅节点更新事件,在有新的数据更新时,通过对于已经对于树节点关注的上下文对象的推送功能将数据推送到客户端中,这样客户端可以对推送过来的数据直接进行本地缓存的更新以及数据展现部分的更新,减少不必要的其他复杂的数据处理逻辑。数据的存储,采用按照树的层次去存储,每个树的节点的
父节点和
子节点都保存起来,这样可以迅速的查询出来对应节点的父子关系,通过局部的父子关系,可以快速的构建出局部的树形结构,方便客户端对于数据进行显示;提升工作效率;S2、服务器通过对树的遍历,判断某一个栏目数据是否更新,若更新则向客户端推送更新后的数据;如判断某一栏目的信息是否有更新,如租房信息,若有用户发布租房信息,将该租房信息向用户端推送;S3、服务器判断客户端是否对本栏目进行订阅,若订阅则将数据推送到客户端,如用户对该栏目进行了订阅,则服务器更新推送的信息直接推到用户端的终端设备上;S4、推送的数据显示在订阅客户端的终端设备上。需要说明的是:上述方法步骤通过存入后台
存储器后通过处理器实现使用。
[0032] 优选的,在步骤S2、服务器通过对树的遍历,判断某一个栏目数据是否更新,若更新则向客户端推送更新后的数据中还包括对更新数据的筛选;判断是否符合网络绿色信息规定,若符合,则进行数据推送;若不符合,则将发布该数据的用户进行黑名单处理,并将该数据删除处理。其中网络绿色信息是指绿色上网业务是采用先进的技术,结合高效的网站安全过滤引擎,在安全稳定的前提下向用户提供过滤非法网站的服务,为青少年提供一片洁净的互联网天空。它无需在用户端做任何
修改、设置或安装软件,而是在电信骨干网上对有害网站作出根本性的拦截,自动过滤网上众多色情、暴力以及其它不健康内容,屏蔽全球色情、
赌博、毒品和邪教等不良网站,其系统的数据库还将每天更新,自动搜索并屏蔽新增加的不健康网站。对一般家庭用户而言,绿色上网业务的内容控制功能为家长提供了有效手段,保证青少年不
接触不良网络信息。
[0033] 优选实施例,所述数据推送方法还包括:当客户端处于离线状态时,则将推送数据推送至该栏目所在的产品中进行缓存;当客户端登录至包含推送数据所在的产品时,产品将缓存的推送数据推送至客户端。
[0034] 优选实施例,所述数据推送方法还包括:获取用户当前浏览页面的信息;基于所述用户当前浏览页面的信息,获取所述用户当前浏览页面所展示的数据;基于所述用户当前浏览的页面所展示的数据,确定所述用户感兴趣的主题,确定所述用户感兴趣的主题还包括:根据当前用户浏览页面的时长,判断用户是否对所浏览的页面信息感兴趣,若感兴趣则向该用户推送该主题的更新数据;如用户点开浏览页面后,停留浏览的时间为1s-5s内即关闭浏览页面,则判断出用户对该主题不感兴趣,则不进行更新数据的推送;若浏览时间在5s以后,则判断为对该主题感兴趣,则进行该主题的更新数据推送;有效的区分有效用户和无效用户,具有较强的针对性推送,向有兴趣的用户推送,减小服务器的无用工作,提高工作效率。
[0035] 需要说明的是,所述方法应用于终端,所述终端与服务器通信连接;所述数据推送方法包括:基于长连接,并通过消息队列遥测传输方式,向服务器发送数据推送请求;其中,数据推送请求包括用户感兴趣的主题,用户感兴趣的主题与目标推送数据相关;基于所述长连接,并通过消息队列遥测传输方式,接收服务器发送的目标推送数据;其中,消息队列遥测传输方式(Message Queuing Telemetry Transport,MQTT)是基于发布/订阅范式的消息传输方式。该消息队列遥测传输方式基于TCP/IP(传输控制协议/网际协议)工作。
[0036] 优选的实施例,步骤S2、服务器通过对树的遍历,判断某一个栏目数据是否更新,若更新则向客户端推送更新后的数据;服务器判断出某一栏目的数据已经更新后对数据进行存储,产品中的每个栏目数据更新可以对应于一个或者多个节点,在运行业务逻辑的时候根据实际需要,可以分别对于栏目中的数据进行获取,或者进行任意的组合。
[0037] 优选的实施例,数据推送方法还包括如下系统:请参阅图2所示,接入模块:根据业务需要,接入层提供数据获取和实时数据推送接口;处理模块:对于系统中的数据进行存储,转发等功能;系统分为数据协议接入层、业务层、存储层。接入层:根据业务需要,接入层提供数据获取和实时数据推送接口。业务层:对于系统中的数据进行存储,转发等功能。里面提供了对于网络层的心跳数据保持,根据用户信息需要,对不同信息进行订阅的分组处理,以及用户需要发布的消息进行管理的消息处理模块,此模块收到消息后,对数据进行存储以及转发给关注的用户进行数据推送。流量控制,对于常见的攻击方式进行流量控制,避免无效的请求或者请求过于频繁对于系统的压力。黑白名单,对于用户的ip进行管理,只有允许的白名单的机器才可以对数据进行更新以及存储,避免不允许的机器对数据进行操作。对于黑名单的机器,从网络层进行直接关闭,避免不必要的数据协议处理,减轻服务器压力。本地缓存,对于用户请求的数据,按照数据协议以及请求内容进行数据缓存,避免后期同样请求的数据再次请求,减轻后台数据存储的的服务压力。存储层:对于业务数据,对于需要存储的树形数据进行转化为非树形数据进行存储,以及数据还原。减少上层对数据的树形数据进行操作。
[0038] 本发明不局限于上述可选实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是落入本发明权利要求界定范围内的技术方案,均落在本发明的保护范围之内。