CN112311825A - 消息推送方法、装置、推送服务器及可读存储介质 - Google Patents
消息推送方法、装置、推送服务器及可读存储介质 Download PDFInfo
- Publication number
- CN112311825A CN112311825A CN201910690657.8A CN201910690657A CN112311825A CN 112311825 A CN112311825 A CN 112311825A CN 201910690657 A CN201910690657 A CN 201910690657A CN 112311825 A CN112311825 A CN 112311825A
- Authority
- CN
- China
- Prior art keywords
- attribute
- subscription information
- subscription
- message
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1859—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种消息推送方法、装置、推送服务器及可读存储介质,涉及通信技术领域。推送服务器中存储有订阅信息,订阅信息中包括订阅信息属性内容及订阅规则。在获得一条包括推送消息属性内容、推送规则及消息体的待推送消息后,将推送规则与订阅信息属性内容进行匹配,并将订阅规则与推送消息属性内容进行匹配,得到满足双向匹配的订阅信息。最后将消息体推送给满足双向匹配的各订阅信息对应的客户端。由此,可实现订阅信息与待推送消息的双向匹配过滤,将待推送消息发送给满足双向匹配的客户端,以满足不同业务的复杂需求。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种消息推送方法、装置、推送服务器及可读存储介质。
背景技术
在现有技术中,有大量消息(比如,告警信息、状态信息等)需要推送给客户端。目前主要使用的推送方式如下:客户端向推送服务器发送服务订阅信息,该信息中通常携带一个或多个属性,或该信息中包括订阅的某个主题或某些主题。推送服务器在推送消息时,是根据客户端订阅的主题进行消息推送。或者,推送服务器根据服务订阅信息中携带的属性做更精确的推送。但是,通常这些属性都比较简单,且仅为客户端对待推送消息的要求,无法满足业务的复杂需求。
发明内容
有鉴于此,本申请的目的在于提供一种消息推送方法、装置、推送服务器及可读存储介质,以解决上述问题。
第一方面,本申请实施例提供一种消息推送方法,应用于推送服务器,所述推送服务器中存储有订阅信息,所述订阅信息中包括订阅信息属性内容及订阅规则,所述方法包括:
获取待推送消息,其中,所述待推送消息中包括推送消息属性内容、推送规则及消息体;
将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息;
将所述消息体推送给满足双向匹配的各订阅信息对应的客户端。
第二方面,本申请实施例提供一种消息推送装置,应用于推送服务器,所述推送服务器中存储有订阅信息,所述订阅信息中包括订阅信息属性内容及订阅规则,所述装置包括:
获取模块,用于获取待推送消息,其中,所述待推送消息中包括推送消息属性内容、推送规则及消息体;
匹配模块,用于将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息;
发送模块,用于将所述消息体推送给满足双向匹配的各订阅信息对应的客户端。
第三方面,本申请实施例提供一种推送服务器,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式任一所述的消息推送方法。
第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述实施方式中任一项所述的消息推送方法。
相对于现有技术而言,本申请具有以下有益效果:
本申请实施例提供的消息推送方法、装置、推送服务器及可读存储介质,首先获得需要推送的待推送消息,其中,所述待推送消息中包括推送消息属性内容、推送规则及消息体。然后将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息。最后将所述消息体推送给满足双向匹配的各订阅信息对应的客户端。由此,可根据推送规则对订阅信息进行过滤,根据订阅信息对待推送消息进行过滤,从而实现订阅信息与待推送消息的双向匹配过滤,以满足不同业务的复杂需求。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请实施例提供的推送***的方框示意图;
图2是本申请实施例提供的推送服务器的方框示意图;
图3是本申请实施例提供的订阅信息及推送消息示意图;
图4是本申请实施例提供的消息推送方法的流程示意图;
图5是本申请实施例提供的属性树的示意图;
图6是图4中步骤S120包括的子步骤的流程示意图之一;
图7是图4中步骤S120包括的子步骤的流程示意图之二;
图8是本申请实施例的推送服务器中存储的订阅信息示意图;
图9是本申请实施例中提供的规则树的示意图;
图10是本申请实施例提供的待推送消息的推送消息属性内容示意图;
图11是本申请实施例提供的消息推送装置的方框示意图之一;
图12是本申请实施例提供的消息推送装置的方框示意图之二。
图标:100-推送服务器;110-存储器;120-处理器;130-通信单元;200-消息推送装置;201-创建模块;210-获取模块;220-匹配模块;230-推送模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请发明人发现,现有技术在进行消息推送时,每一条待推送消息进入推送服务器后,推送服务器都会将此消息与每条用户的订阅信息进行匹配。采用的匹配方式为:仅根据订阅信息订阅的主题或订阅信息中携带的属性,对待推送消息进行过滤。然而在某些业务中,待推送消息中也会包括对客户端过滤的要求,若仍按照现有的推送方式进行消息推送,则会造成消息推送错误,现有方式无法满足业务的复杂需求。
发现以上方案所存在的缺陷的过程,是发明人在经过实践并仔细研究后得到的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应是发明人在本申请过程中对本申请做出的贡献。
请参照图1,图1是本申请实施例提供的推送***的方框示意图。该推送***包括推送服务器100、消息队列(Message Queue,MQ)、至少一个后台业务模块及至少一个客户端。上述后台业务模块可以是运行在其他电子设备(比如,业务服务器)上的业务模块。消息队列中存储有各业务模块发送的需要推送的消息。该消息队列是存放消息的分布式队列,比如,rocketmq、kafka等。各客户端与推送服务器100建立长连接,每个客户端将订阅信息发送给推送服务器100。推送服务器100从消息队列中取出一条待推送消息,然后将订阅信息与待推送消息进行双向匹配,并根据双向匹配结果,将待推送消息中的消息体推送给对应的客户端。由此,实现了订阅信息与待推送消息的双向匹配过滤,可满足不同业务的复杂需求。
请参照图2,图2是本申请实施例提供的推送服务器100的方框示意图。所述推送服务器100可以是独立服务器,也可以是由多个独立服务器组成的集成服务器。所述推送服务器100可以包括存储器110、处理器120及通信单元130。所述存储器110、处理器120以及通信单元130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器110用于存储程序或者数据。例如,所述存储器110中存储有消息推送装置200,所述消息推送装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述存储器可以是,但不限于,随机存取存储器(RandomAccess Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
所述处理器120用于读/写存储器110中存储的数据或程序,如本申请实施例中的消息推送装置200,并执行相应地功能,即实现本申请实施例中的消息推送方法。
所述通信单元130用于通过网络建立所述推送服务器100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。比如,所述推送服务器100可通过该通信单元130从其他设备处获得待推送消息,并通过该通信单元130将待推送消息推送给对应的客户端。
应当理解的是,图2所示的结构仅为推送服务器100的结构示意图,所述推送服务器100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
请参照图3,图3是本申请实施例提供的订阅信息及推送消息示意图。在本申请实施例中,订阅信息可以包括:订阅信息属性内容、订阅规则。订阅信息属性内容可以包括该订阅信息对应的用户属性,比如,可以包括该用户的角色、性别、ID等。订阅规则中包括对推送消息的过滤要求。比如,若一订阅信息中的订阅规则为:等级[重要,一般],则表示等级为重要或者一般的推送消息满足该订阅规则,也就是说,等级为重要或者一般的推送消息是该客户端需要的推送消息。
在本申请实施例中,推送消息中可以包括推送消息属性内容、推送规则、消息体。所述推送消息属性内容中包括该条推送消息自身的属性,比如,可以包括推送消息的等级、消息类型、来源等。推送规则中包括对客户端的过滤要求。比如,若一推送消息中的推送规则为:角色[管理员],表示角色为管理员的订阅信息对应的客户端满足该推送规则,也就是说,该条推送消息希望被推送给角色为管理员的用户所对应的客户端。
在本实施例的一种实施方式中,如图3所示,订阅信息中包括:attributes字段、conditions字段,订阅信息中的attributes字段内容用以表示订阅信息属性内容,订阅信息中的conditions字段内容用以表示订阅规则。推送消息中包括:attributes字段、conditions字段、消息体,推送消息中的attributes字段内容用以表示推送消息属性内容,推送消息中的conditions字段内容用以表示推送规则。
请参照图4,图4是本申请实施例提供的消息推送方法的流程示意图。所述方法应用于所述推送服务器100,所述推送服务器100中存储有订阅信息。每条订阅信息中包括订阅信息属性内容及订阅规则。下面对消息推送方法的具体流程进行详细阐述。
步骤S110,获取待推送消息。
在本申请实施例中,所述推送服务器100可以从其他设备处获取待推送消息,或从自身存储的未推送的推送消息中获取一条推送消息作为待推送消息。其中,所述待推送消息中包括推送消息属性内容、推送规则及消息体。在本申请实施例中,所述待推送消息中可以包括attributes字段、conditions字段及消息体。
步骤S120,将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息。
在本申请实施例中,将所述待推送消息的推送规则与所述订阅信息属性内容进行匹配,可实现根据推送规则对订阅信息进行过滤。将订阅信息的订阅规则与所述推送消息属性内容进行匹配,可实现根据订阅规则对待推送消息进行过滤。通过上述两个匹配过程,可得到满足双向匹配的订阅信息,即得到双向匹配成功的订阅信息。其中,双向匹配成功指,待推送消息的推送消息属性内容满足一订阅信息的订阅规则,且该订阅信息的订阅信息属性内容满足推送消息的推送规则。其中,在上述双向匹配过程中,不限定匹配顺序,可以先根据推送规则进行匹配,也可以先根据订阅规则进行匹配。
在本申请一种实施例中,可以将待推送消息与各条订阅信息逐一进行双向匹配,若一条订阅信息与待推送消息满足了双向匹配,则可将待推送消息中的消息体推送给该订阅信息对应的客户端。若不匹配,则进行下一条订阅信息与待推送消息的双向匹配。可选地,在匹配前,可将待推送消息中的推送规则(如图3所示的每个conditions字段)转换成哈希表,然后利用哈希表进行匹配。
本申请发明人还发现,若推送规则及订阅规则都比较复杂,待推送消息与各条订阅信息逐一双向匹配的方式会非常耗时,使得匹配效率低下,造成推送性能的急剧下降,并且会占用推送服务器100的大量资源,影响推送服务器100中其他业务模块的正常使用。比如,订阅信息中包括订阅规则,待推送消息的推送规则中包括用户ID:[001,002,003],用户ID:[001,002,003]表示此消息可以推送给用户ID为001或002或003的客户端,那么在匹配时,除了根据订阅信息的订阅规则进行匹配外,还需要比较每一条订阅信息的用户ID是否在其中。若推送规则中的用户ID数量比较多,如上万个,那么该匹配过程非常耗时。
结合大多数业务场景,客户端发送的订阅信息中的订阅信息属性内容包括会话ID(sessionId)、用户ID(userCode)等用户自带的默认属性,少数用户会有比较特殊的用户属性。本申请实施例对订阅信息属性内容不作限制。其中,订阅信息一般不会常做更改。
在本申请另一种实施例中,所述推送服务器100可以根据接收到的订阅信息的订阅信息属性内容,对接收到的订阅信息进行分类,以生成属性树,并保存该属性树。可选地,所述推送服务器100可以根据某一段时间内接收到的所有订阅信息生成属性树,也可以根据推送服务器100在某时刻前接收到的所有订阅信息生成属性树,还可以根据由其他方式确定的订阅信息生成属性树。生成属性树所使用的订阅信息可以根据实际需求选定。
在本实施例中,所述订阅信息属性内容中包括订阅属性。属性树中包括不同订阅属性对应的订阅信息表项,每个订阅信息表项中包括对应同一订阅属性的订阅信息,即一个订阅信息表项中的订阅信息均包括一相同的订阅属性。比如,一订阅信息表项对应订阅属性a,则该订阅信息表项中的各订阅信息的订阅信息属性内容中均包括了订阅属性a。
可选地,该属性树可以是表的形式,也可以为其他形式。在属性树为表的形式时,该属性树可以是哈希表,其中,订阅属性为key,订阅属性对应的订阅信息为value。当然可以理解的是,上述仅为举例说明,属性树还可以为其他形式。
请参照图5,图5是本申请实施例提供的属性树的示意图。图5中的每个订阅信息List包括了对应同一订阅属性的多条订阅信息。以图5中与管理员通过箭头连接的订阅信息List为例,该订阅信息List对应的订阅属性为角色管理员,该订阅信息List中的所有订阅信息的订阅信息属性内容中均包括了角色管理员这一信息,即,该订阅信息List中的各订阅信息对应的用户的角色均为管理员。
在本实施例中,所述订阅信息表项可以包括一个如图5所示的订阅信息List。比如,角色管理员对应的订阅信息表项包括:订阅信息List。订阅信息表项也可以包括一个订阅信息List及该订阅信息List对应的订阅属性,比如,角色管理员对应的订阅信息表项包括:订阅信息List及角色管理员。
请参照图6,图6是图4中步骤S120包括的子步骤的流程示意图之一。步骤S120可以包括子步骤S121及子步骤S122。所述待推送消息的推送规则中包括目标推送属性。目标推送属性表示该待推送消息对客户端的要求,即表示希望被推送至的目标用户具有的属性。
子步骤S121,根据所述目标推送属性及属性树,得到满足所述推送规则的第一订阅信息表。
在本实施例中,所述推送服务器100中存储有属性树。所述推送服务器100可将所述待推送消息的推送规则中的目标推送属性与属性树进行匹配。属性树是根据接收到的订阅信息生成的,将目标推送属性与属性树进行匹配,相当于将该目标推送属性与所有的订阅信息进行匹配。而属性树中包括对应不同订阅属性的订阅信息表项,相当于是按照订阅属性对接收到的订阅信息进行了分类。由此,在根据推送规则、订阅信息属性内容进行待推送消息与订阅信息的匹配时,相当于是将目标推送属性与订阅信息的订阅信息属性内容中的订阅属性进行了匹配,从而得到与目标推送属性相同的订阅属性对应的目标订阅信息表项,进而可基于该目标订阅信息表项得到满足所述推送规则的订阅信息。上述方式在匹配时是与每类订阅信息进行匹配,相较于与所有的订阅信息逐一比较的方式,可节省大量时间。所述推送服务器100可根据得到的所有满足所述待推送消息中的推送规则的订阅信息,生成第一订阅信息表。
可选地,在本实施例中,所述订阅属性可以包括订阅属性类别及订阅属性值。一个订阅属性类别下,可包括至少一个订阅属性值。比如,在订阅属性类别为性别时,订阅属性值包括男、女;在订阅属性类别为用户ID时,订阅属性值为具体的用户ID,比如,001、002等。可选地,一个订阅属性类别和一个订阅属性值,表示一个订阅属性,如,用户ID:001,表示一个订阅属性。
所述属性树可以包括多个第三订阅信息表,每个第三订阅信息表对应一订阅属性类别,每个第三订阅信息表中都包括订阅信息表项,每条订阅信息表项中的订阅信息对应一相同订阅属性值。其中,第三订阅信息表可以是,但不限于,哈希表。由此可知,在生成属性树时,是将接收到的订阅信息先按照订阅属性类别进行分类,再对每类订阅信息按照对应的订阅属性类别下的订阅属性值进行分类,基于最后的分类结果生成属性树。
下面对属性树的生成进行举例说明。请再次参照图3及图5,所述订阅属性类别包括:角色、性别、用户ID,对应角色的订阅属性值包括:管理员、滨江区用户、西湖区用户,性别对应的订阅属性值包括:男、女,用户ID对应的订阅属性值包括:001、002、003。对应地,在生成属性树时,先将所有的订阅信息按照角色、性别、用户ID进行分类。然后对对应角色的一类订阅信息按照管理员、滨江区用户、西湖区用户再次分类,生成对应管理员、滨江区用户、西湖区的订阅信息表项,并对对应性别、用户ID的一类订阅信息按照相同方式生成相应的订阅信息表项。其中,所述订阅信息表项可包括图5所示的订阅信息List。
对应地,所述目标推送属性可以包括目标推送属性类别及目标推送属性值。一个目标推送属性类别下,可包括至少一个目标推送属性值。比如,在目标推送属性类别为性别时,目标推送属性值为男、女;在目标推送属性类别为用户ID时,目标推送属性值为具体的用户ID,比如,001、002、003等。可选地,一个目标推送属性包括一个目标推送属性类别及一个目标推送属性值,比如,用户ID:[001,002,003],表示三个目标推送属性。
在得到所述第一订阅信息表的过程中,可首先从属性树中查找到与目标推送属性类别相同的订阅属性类别对应的第三订阅信息表,并将该第三订阅信息表作为目标第三订阅信息表。接着,从目标第三订阅信息表中,获得与目标推送属性值相同的订阅属性值对应的订阅信息表项,并将该订阅信息表项作为目标订阅信息表项,最后根据得到的目标订阅信息表项得到所述第一订阅信息表。
在本申请实施例中,所述推送规则中包括至少一条推送子规则,每条推送子规则中包括所述目标推送属性,目标推送属性包括目标推送属性类别及目标推送属性值。作为一种实施方式,可通过以下方式得到所述第一订阅信息表:首先依次将各推送子规则作为目标推送子规则,从所述属性树的与该目标推送子规则的目标推送属性类别相同的订阅属性类别对应的目标第三订阅信息表中,获得与该目标推送子规则中的目标推送属性值相同的订阅属性值对应的目标订阅信息表项,并根据得到的目标订阅信息表项生成满足该目标推送子规则的第四订阅信息表;然后对得到的所有第四订阅信息表求并集,生成满足所述推送规则的第一订阅信息表。
在根据推送规则匹配时,所述消息推送服务器100可依次将所述推送规则中的推送子规则作为目标推送子规则,也就是说,目标推送子规则是变化的,在每次确定目标推送子规则时,是将一未进行匹配的推送子规则作为目标推送子规则。在确定目标推送子规则后,所述消息推送服务器100根据目标推送子规则中的目标推送属性类别,在所述属性树中确定目标第三订阅信息表。该目标第三订阅信息表对应的订阅属性类别与目标推送属性类别相同。然后,将目标第三订阅信息表与目标推送属性值进行匹配,得到目标订阅信息表项。目标订阅信息表项对应的订阅属性值与目标推送属性值相同。最后根据得到的所有的目标订阅信息表项生成满足该目标推送子规则的第四订阅信息表。
在本申请实施例中规定:满足一个推送子规则,则判定满足该推送规则。也就是说,如果有订阅信息与推送规则中的一个推送子规则匹配上,则表示该订阅信息满足该推送规则。由此可知,推送规则中的推送子规则之间为或的关系,满足其中一个推送子规则,则可确定订阅信息满足了推送规则。在得到满足各推送子规则的第四订阅信息表后,可对各第四订阅信息表中的订阅信息求并集,从而得到满足所述推送规则的所有订阅信息,根据该部分订阅信息可生成所述第一订阅信息表。可选地,所述第一订阅信息表中仅包括满足推送规则的订阅信息。
在本申请另一实施例中,所述推送子规则中包括至少一条推送规则内容,每条推送规则内容中包括一目标推送属性类别及至少一个目标推送属性值。作为一种实施方式,可通过以下方式获得所述第四订阅信息表:根据目标推送子规则的每条推送规则内容中的目标推送属性类别及目标推送属性值、所述属性树,得到订阅属性类别与目标推送属性类别相同、且订阅属性值与目标推送值相同的订阅信息;对各条推送规则内容对应的订阅信息求交集,得到满足该目标推送子规则中所有推送规则内容的所述第四订阅信息表。
在本实施例中,在确定目标推送子规则后,可将该目标推送子规则中的推送规则内容依次作为目标推送规则内容。在确定一目标推送规则内容后,根据目标推送规则内容中的目标推送属性类别、目标推送属性值、属性树,得到满足目标推送规则内容的订阅信息。其中,推送规则内容的目标推送属性值为或的关系,一订阅信息与一条推送规则内容中的目标推送属性类别和一个目标推送属性值匹配上,则可确定该订阅信息满足该条推送规则内容。
得到的该部分订阅信息的订阅属性类别与目标推送规则内容中的目标推送属性类别相同、订阅属性值与目标推送规则内容中的目标推送属性值相同。也就是说,先根据目标推送规则内容中的目标推送属性类别确定目标第三订阅信息表,然后对目标推送规则内容中的目标属性值及目标第三订阅信息表求交集,得到满足目标推送规则内容的订阅信息。依此类推,可得到各条推送规则内容对应的订阅信息。
在本实施例中还可以规定:满足一条推送子规则中的所有推送规则内容,则判定满足该推送子规则。也就是说,如果有订阅信息与一条推送子规则中的所有推送规则内容都匹配上,则表示该订阅信息满足该推送子规则。由此可知,推送子规则中的推送规则内容之间是且的关系,满足一条推送子规则中的所有推送规则内容,则可确定订阅信息满足了推送子规则。在得到各条推送规则内容对应的订阅信息后,通过求交集,可得到满足该推送子规则的订阅信息,即得到所述第四订阅信息表。
请再次参照图6,步骤S120还可以包括子步骤S122。
子步骤S122,判断所述待推送消息的推送消息属性内容是否与所述第一订阅信息表中的各条订阅信息的订阅规则匹配,并根据订阅规则与所述推送消息属性内容匹配的订阅信息生成第二订阅信息表。
在本实施例中,在得到满足所述推送规则的第一订阅信息表后,将待推送消息与所述第一订阅信息表中的各订阅信息的订阅规则进行匹配,以逐一判断待推送消息的推送消息属性内容是否与订阅信息的订阅规则匹配上。然后根据所有订阅规则与推送消息属性内容匹配上的订阅信息生成第二订阅信息表。所述第二订阅信息表中的订阅信息为满足双向匹配的订阅信息。
可选地,所述待推送消息的推送消息属性内容中包括消息属性,该消息属性包括待推送消息的消息属性类别及消息属性值。一个消息属性类别对应至少一个消息属性值,比如,在消息属性类别为等级时,消息属性值可为:提示、重要、一般。所述待推送消息中的消息属性可以为多个,如图3所示,消息属性为3个,即,等级:提示;消息类型:告警;来源:滨江区。
与推送规则相似,订阅信息中的订阅规则包括至少一条订阅子规则,每条订阅子规则中包括至少一条订阅规则内容。每条订阅规则内容中包括目标消息属性。一条订阅规则内容中可以包括一目标消息属性类别及至少一个目标消息属性值。在本申请实施例中规定:订阅规则中的订阅子规则之间为或的关系,一条订阅子规则中的订阅规则内容之间是且的关系。
在判断所述推送消息属性内容是否与一订阅信息的订阅规则匹配时,可将将所述推送消息属性内容中的消息属性,与该订阅信息的订阅规则进行比较。若所述推送消息属性内容中的消息属性满足订阅信息的至少一条订阅子规则中的各条订阅规则内容,则可判定该条订阅信息的订阅规则与所述待推送消息匹配的推送消息属性内容匹配成功。
如图3所示,一待推送消息的推送消息属性内容包括:等级:提示;消息类型:告警;来源:滨江区。一订阅信息的订阅规则包括订阅子规则1、2,订阅规则1:等级:[重要,一般](中括号内为或的关系);订阅规则2:消息类别:[告警,状态],来源:[滨江区]。通过比较可知,待推送消息的推送消息属性内容满足了订阅子规则2中的各条订阅规则内容,因此判定该条待推送消息匹配上该条订阅信息中的订阅规则。若该条订阅信息同时匹配上该条待推送消息的推送规则,则可确定该条订阅信息与所述待推送消息满足双向匹配。
可选地,在本申请实施例中,上述求交集的过程可以为:先比较求交集的两个哈希表的大小,然后用小的哈希表去对大的哈希表进行遍历。该方式的遍历次数为小的哈希表的元素个数次。比如,第三订阅信息表为哈希表,在通过求交集得到满足目标推送内容的订阅信息的过程中,将该目标推送规则内容转换成哈希表,然后比较该哈希表与第三订阅信息表的大小。若该哈希表的大小小于第三订阅信息表的大小,则基于该哈希表在第三订阅信息表中进行遍历,以得到满足目标推送内容的订阅信息。在另一种实施方式中,可以用大的哈希表去对小的哈希表进行遍历,也可以不比较两个哈希表的大小,任意选择其中一个哈希表对另一哈希表进行遍历,本申请对此不作限定。
在本申请实施例中,在通过求交集得到满足目标推送子规则的第四订阅信息表时,可通过类似的方式实现。比如,预先根据各订阅信息生成一标识,作为各订阅信息的唯一标识,并将该标识作为该订阅信息的key值,订阅信息作为key值对应的value,由此可根据满足目标推送内容的订阅信息生成目标哈希表,进而比较需要求交集的两个目标哈希表的大小,并用小的目标哈希表对大的目标哈希表进行遍历,以得到满足目标推送子规则的第四订阅信息表。同前段所述,其他实施方式在此不作赘述。
请再次参照图4,在步骤S120后,所述方法还可以包括步骤S130。
步骤S130,将所述消息体推送给满足双向匹配的各订阅信息对应的客户端。
在得到包括满足双向匹配的订阅信息的所述第二订阅信息表后,确定该第二订阅信息表中各订阅信息对应的客户端,然后将待推送消息中的消息体推送给对应的客户端。
在上述实施例中,由图3可知,订阅信息中的订阅信息属性内容、订阅规则,及推送消息中的推送消息属性内容、推送规则中的具体内容可扩展,可以根据不同的业务情况进行设置。也就是说,可根据实际需求设置订阅信息中的订阅信息属性内容和订阅规则、及推送消息中的推送消息属性内容和推送规则。
在匹配时,根据属性树进行双向匹配,实现推送消息与包括复杂订阅规则的订阅信息的相互过滤。并且,本申请实施例在根据属性树进行双向匹配时,先根据属性树进行匹配,再逐一判断满足推送消息中推送规则的订阅信息的订阅规则与待推送消息是否匹配,由此减少了大规模数据量的遍历。可选地,在匹配过程中,可采用哈希的方式,使得匹配的复杂度从O(n2)降低至O(n),并且使此n尽可能地减小,最大化匹配性能。
在本申请实施例的一种实施方式中,所述推送服务器100获得的订阅信息及待推送消息的形式如图3所示,也就是说,直接获得的订阅信息的订阅规则中包括了由至少一条订阅规则内容组成的订阅子规则,直接获得的待推送消息中包括了至少一条推送规则内容组成的推送子规则。
在本申请实施例的另一种实施方式中,所述推送服务器100接收到的推送消息中的推送规则仅包括多条推送规则内容及推送规则内容之间的关系,订阅信息中的订阅规则仅包括多条订阅规则内容及订阅规则内容之间的关系。其中,推送规则内容之间的关系包括与、或、无关系;同理,订阅规则内容之间的关系包括与、或、无关系。
可首先根据推送规则内容之间的关系,将包括多条推送规则内容的推送规则,处理为包括至少一个推送子规则的推送规则。若订阅信息满足至少一个推送子规则,则可判定订阅信息满足该推送规则。同理,根据订阅规则内容之间的关系,将包括多条订阅规则内容的订阅规则,处理为包括至少一个订阅子规则的订阅规则。若推送消息满足至少一个订阅子规则,则可判定推送消息满足该订阅规则。
比如,所述推送服务器100接收到的一条订阅信息为:获得消息类型为告警或状态,且来源为滨江区的推送消息,也获得等级为重要或者一般的推送消息。通过处理,可得到包括两条订阅子规则的订阅规则。
经过上述处理后,再根据属性树进行上述的双向匹配,从而得到满足双向匹配的订阅信息。
在本实施例的另一种实施方式中,若所述推送服务器100接收到的推送消息中的推送规则仅包括多条推送规则内容及推送规则内容之间的关系,可直接根据各条推送规则内容及推送规则内容之间的关系、以及所述属性树,进行所述推送规则与所述属性树的匹配,得到满足所述推送规则的第一订阅信息表。接着,基于第一订阅信息表中各条订阅规则内容、订阅规则内容之间的关系、以及所述待推送消息中的推送消息属性内容,进行所述待推送消息与订阅规则的匹配,从而得到所述第二订阅信息表。
可选地,在直接根据各条推送规则内容及推送规则内容之间的关系、以及所述属性树,得到所述第一订阅信息表时,可先进行各条推送规则内容与属性树的匹配,以得到各条推送规则内容对应的订阅信息表项。然后再根据推送规则内容之间的关系对得到的订阅信息表项进行对应处理,从而得到所述第一订阅信息表。
在本申请实施例中,在根据所述属性树进行双向匹配前,所述方法还可以包括以下步骤:
根据订阅属性类别将接收到的订阅信息进行分类。
根据订阅属性值对对应同一订阅属性类别的订阅信息进行分类,并根据分类结果创建各订阅属性值对应的订阅信息表项,及根据对应同一订阅属性类别的订阅信息表项得到第三订阅信息表。
通过以上两个步骤,可预先生成所述属性树。在收到更新指令时,所述消息推送服务器100可对存储的属性树进行更新。可选地,该更新指令可以是其他设备发送的,也可以是由消息推送服务器100根据接收到的输入操作产生的,还可以是由消息推送服务器100在间隔一预设时间段后自动产生的。在确定需要更新属性树时,所述消息推送服务器100可根据新接收到的订阅信息对存储的属性树进行更新。
在本申请实施例中,在根据属性树进行双向匹配前,所述方法还可以包括:确定是否根据所述属性树进行双向匹配。
若确定根据所述属性树进行双向匹配,则可以执行子步骤S121及子步骤S122。
若确定不根据所述属性树进行双向匹配,则可以将所述待推送消息与每条订阅信息进行双向匹配,并在所述待推送消息与一订阅信息匹配时,将所述待推送消息中的消息体推送给该订阅信息对应的客户端。
在本申请实施例中,还可以根据接收到的选择操作、或接收到的订阅信息和待推送消息的推送规则等,确定是否根据所述属性树进行双向匹配。优选地,在少量用户在线,并且待推送消息中的推送规则非常复杂(例如图3中conditions字段数量很多,且每个conditions字段很复杂)时,可确定不根据属性树进行双向匹配。此时,则可以将待推送消息与各条订阅信息逐一进行双向匹配。若一条订阅信息与待推送消息满足了双向匹配,则可将待推送消息中的消息体推送给该订阅信息对应的客户端。若不匹配,则进行下一条订阅信息与待推送消息的双向匹配。可选地,在匹配前,可将待推送消息中的每条推送规则内容(如图3所示的每个conditions字段)都转换成哈希表,然后利用哈希表进行匹配。
在实际业务中,一般订阅信息的数量一直保持很高,在这种情况下,则优先根据属性树进行双向匹配。
下面结合图3对逐一进行双向匹配进行举例说明。
从推送消息的conditions可知,推送消息对客户端有如下要求:①角色为管理员,并且性别为女;②用户ID为001或002或003。一条订阅信息如图3所示,从订阅信息的conditions可知,订阅信息对应的客户端对推送消息有如下要求:①等级为重要或一般;②消息类型为告警或状态,并且来源为滨江区。
从推送消息的attributes得知,推送消息满足订阅规则的要求②,因此这条推送消息符合该客户端的要求。
从订阅信息的attributes得知,订阅信息满足推送规则的要求②,因此这条订阅信息符合推送消息的要求。
其中,上述两个判断步骤不限定顺序,可同时进行,也可以先根据订阅规则判断,再根据推送规则判断,还可以先根据推送规则判断,再根据订阅规则判断。
此时,订阅信息与推送消息双方匹配成功,将推送消息中的消息体推送给该订阅信息对应的客户端。
在本申请的另一实施例中,所述推送服务器100中存储有规则树。所述待推送消息的推送消息属性内容中包括消息属性内容。所述规则树包括满足订阅规则的不同的消息属性对应的订阅信息表项及满足订阅规则的不同的消息属性组合对应的订阅信息表项,每个订阅信息表项中包括对应同一消息属性或同一消息属性组合的订阅信息。请参照图7,图7是图4中步骤S120包括的子步骤的另一种流程示意图。步骤S120包括子步骤S125及子步骤S126。
子步骤S125,根据所述推送消息属性内容中的消息属性及规则树,得到第五订阅信息表。
其中,第五订阅信息表中的各条订阅信息的订阅规则与所述待推送消息的推送消息属性内容匹配。
子步骤S126,判断所述第五订阅信息表中的各条订阅信息的订阅信息属性内容是否与所述待推送消息中的推送规则匹配,并根据订阅属性内容与所述推送规则匹配的订阅信息生成第二订阅信息表。
其中,所述第二订阅信息表中的订阅信息为满足双向匹配的订阅信息。
在本实施例中,所述订阅信息的订阅规则中包括目标消息属性,在获得订阅信息后,可根据订阅规则中的目标消息属性,确定出满足订阅规则的消息属性及消息属性组合,从而得到所述规则树。其中,消息属性组合中包括至少两个消息属性。
下面对满足订阅规则的消息属性及消息属性组合进行说明。
比如,所述订阅信息中包括至少一条推送子规则,当待推送消息的推送消息属性内容中的消息属性满足了订阅规则中的至少一条订阅子规则时,可确定该待推送消息满足所述订阅规则。一条订阅子规则中可以仅包括一个目标消息属性,也可以包括至少一个目标消息属性组合,所述目标消息属性组合中的各个目标消息属性之间为且的关系。其中,若待推送消息满足了订阅规则中的至少任意一个目标消息属性组合,即待推送消息满足了至少任意一个目标消息属性组合中的所有目标消息属性,则表示待推送消息满足了该条订阅信息的订阅规则。
在这种情况下,若一条订阅子规则中仅包括一个目标消息属性,与该目标消息属性相同的消息属性则满足了该订阅子规则,且满足了订阅规则。若待推送消息的推送消息属性内容满足了该目标消息属性组合,可以确定待推送消息与该订阅信息的订阅规则匹配上,则与该目标消息属性组合相同的消息属性组合,为满足了订阅规则的消息属性组合。
其中,目标消息属性组合包括不同的目标消息属性,一个目标消息属性包括一目标消息属性类别及一目标消息属性值。比如,目标消息属性类别为来源,目标消息属性值为滨江区,则来源:[滨江区]表示一个目标消息属性。一个目标消息属性组合中的目标消息属性类别不同。一个目标消息属性组合可以为:消息类型:[告警],来源:[滨江区],该目标消息属性组合表示希望获得消息类型为告警且来源为滨江区的推送消息,其中,消息类型及来源表示目标消息属性类别。
由此,基于接收到的订阅信息,根据各条订阅信息中的目标消息属性,确定出满足订阅规则的消息属性,然后根据与该消息属性相同的目标消息属性对应的订阅信息,生成对应该消息属性的订阅信息表项,其中,该订阅信息表项中的所有订阅信息都包括该目标消息属性。若确定出满足订阅规则的消息属性组合,则可根据与该消息属性组合相同的目标消息属性组合对应的订阅信息,生成对应该消息属性组合的订阅信息表项,其中,该订阅信息表项中的所有订阅信息都包括该目标消息属性组合。通过上述方式,可根据订阅规则完成对订阅信息的分类,得到满足订阅规则的不同的消息属性对应的订阅信息表项,及满足订阅规则的不同的消息属性组合对应的订阅信息表项,从而得到规则树。
在获得待推送消息后,可根据待推送消息的推送消息属性内容中的消息属性及规则树,从所述规则树中获得订阅规则与所述待推送消息属性内容匹配的订阅信息组成的订阅信息表项,并根据得到的订阅信息表项得到所述第五订阅信息表。
然后再根据所述第五订阅信息表中的各条订阅信息的订阅信息属性内容及所述待推送消息的推送规则,判断各条订阅信息是否满足所述待推送消息的推送规则,进而根据满足所述推送规则订阅信息生成所述第二订阅信息表。所述第六订阅信息表中的订阅信息,为满足双向匹配的订阅信息。
本实施例与基于属性树的实施例的不同之处在于,先根据订阅规则与所述推送消息属性内容的匹配,筛选出一部分订阅信息;然后根据筛选出的订阅信息的订阅信息属性内容与推送规则的匹配,再删选出一部分订阅信息,从而得到满足双向匹配的第二订阅信息表。本实施例的基本原理及产生的技术效果与上述实施例相同,具体执行过程与上述实施例类似,在此不再赘述。
请参照图8~10,图8是本申请实施例的推送服务器100中存储的订阅信息示意图,图9是本申请实施例中提供的规则树的示意图,图10是本申请实施例提供的待推送消息的推送消息属性内容示意图。下面对基于规则树的双向匹配进行举例说明。
假设有订阅信息1、2、3、4,订阅信息1中的订阅规则为:需要等级为重要或者一般的推送消息;需要消息类型为告警且来源为滨江区的推送消息;需要消息类型为状态且来源为滨江区的推送消息。
订阅信息2的订阅规则为:需要消息类型为告警的推送消息。
订阅信息3的订阅规则为:需要等级为重要的推送消息;
订阅信息4的订阅规则为:需要等级为一般的推送消息;需要来源为滨江区的推送消息。
根据订阅信息1、2、3及4,可生成图9所示的规则树。
在获得待推送消息后,将待推送消息中的推送消息属性内容进行任意的组合,并将得到的组合结果及待推送消息中的每条推送消息属性内容与所述规则树进行匹配。比如,待推送消息中的推送消息属性内容如图10所示,包括:等级:重要;消息类型:告警;来源:滨江区。
待推送消息中的每条推送消息属性内容以及得到的组合结果如下所示:
A1、等级为重要;
A2、消息类型为告警;
A3、来源为滨江区;
A4、等级为重要且消息类型为告警;
A5、等级为重要且来源为滨江区;
A6、消息类型为告警且来源为滨江区;
A7、等级为重要且消息类型为告警且来源为滨江区;
针对A1,从规则树中找仅对应等级为重要的订阅信息List,若找到,则获得的订阅信息List为订阅规则和推送信息的推送消息属性内容匹配成功的订阅信息。根据上述规则树,找到一个订阅信息List,该订阅信息List中包括订阅信息1、3。由此获得订阅规则与待推送消息的推送消息属性内容匹配的订阅信息1、3。
针对A2,从规则树中找仅对应消息类型为告警的订阅信息List,找到的订阅信息List中包括订阅信息2。由此获得订阅规则与待推送消息的推送消息属性内容匹配的订阅信息2。
针对A3,从规则树中找仅对应来源为滨江区的订阅信息List,找到的订阅信息List中包括订阅信息4。由此获得订阅规则与待推送消息的推送消息属性内容匹配的订阅信息4。
针对A4,从规则树中找仅对应等级为重要且消息类型为告警的订阅信息List,未找到。
针对A5,从规则树中找仅对应等级为重要且来源为滨江区的订阅信息List,未找到。
针对A6,从规则树中找仅对应消息类型为告警且来源为滨江区的订阅信息List,找到的订阅信息List中包括订阅信息1。由此,获得订阅规则与待推送消息的推送消息属性内容匹配的订阅信息4。
针对A7,从规则树中找仅对应等级为重要且消息类型为告警且来源为滨江区的订阅信息List,未找到。
通过上述方式,获得了订阅规则与待推送消息的推送消息属性内容匹配的订阅信息有:订阅信息1、2、3、4。由此,根据规则树完成了订阅规则与所述推送消息属性内容的匹配。
在本实施例中,在进行双向匹配前,所述方法还可以包括:确定是否根据规则树进行双向匹配。若确定根据规则树进行双向匹配,则执行子步骤S125及子步骤S126。若不是,则进行待推送消息与各条订阅信息的逐一匹配。
在本申请的另一实施例中,所述推送服务器100中包括属性树及规则树。在进行双向匹配前,所述方法可以包括:判断是否根据属性树或规则树进行双向匹配。若确定不根据属性树进行双向匹配,也不根据规则树进行双向匹配,则可以采用逐一匹配的方式。若确定根据属性树进行双向匹配,可执行子步骤S121及子步骤S122。若确定根据规则树进行双向匹配,可执行子步骤S125及子步骤S126。
请参照图11,图11是本申请实施例提供的消息推送装置200的方框示意图之一。需要说明的是,本申请实施例所提供的消息推送装置200,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。所述消息推送装置200应用于推送服务器100,所述推送服务器100中存储有订阅信息,所述订阅信息中包括订阅信息属性内容及订阅规则。所述消息推送装置200可以包括获取模块210、匹配模块220及推送模块230。
所述获取模块210,用于获取待推送消息。其中,所述待推送消息中包括推送消息属性内容、推送规则及消息体。
所述匹配模块220,用于将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息。
所述推送模块230,用于将所述消息体推送给满足双向匹配的各订阅信息对应的客户端。
请参照图12,图12是本申请实施例提供的消息推送装置200的方框示意图之二。可选地,在本实施例中,所述消息推送装置200还可以包括创建模块201。
所述创建模块201,用于创建属性树和/或规则树。
本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的消息推送方法。
综上所述,本申请实施例提供一种消息推送方法、装置、推送服务器及可读存储介质,首先获得需要推送的待推送消息,其中,所述待推送消息中包括推送消息属性内容、推送规则及消息体。然后将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息。最后将所述消息体推送给满足双向匹配的各订阅信息对应的客户端。由此,可根据推送规则对订阅信息进行过滤,根据订阅信息对待推送消息进行过滤,从而实现订阅信息与待推送消息的双向匹配过滤,以满足不同业务的复杂需求。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种消息推送方法,其特征在于,应用于推送服务器,所述推送服务器中存储有订阅信息,所述订阅信息中包括订阅信息属性内容及订阅规则,所述方法包括:
获取待推送消息,其中,所述待推送消息中包括推送消息属性内容、推送规则及消息体;
将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息;
将所述消息体推送给满足双向匹配的各订阅信息对应的客户端。
2.根据权利要求1所述的消息推送方法,其特征在于,所述订阅信息属性内容中包括订阅属性,所述推送服务器中还存储有属性树,所述属性树包括不同订阅属性对应的订阅信息表项,每个订阅信息表项中包括对应同一订阅属性的订阅信息,所述推送规则中包括目标推送属性,所述将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息,包括:
根据所述目标推送属性及属性树,得到满足所述推送规则的第一订阅信息表;
判断所述待推送消息的推送消息属性内容是否与所述第一订阅信息表中的各条订阅信息的订阅规则匹配,并根据订阅规则与所述推送消息属性内容匹配的订阅信息生成第二订阅信息表,其中,所述第二订阅信息表中的订阅信息为满足双向匹配的订阅信息。
3.根据权利要求2所述的消息推送方法,其特征在于,所述订阅属性包括订阅属性类别及订阅属性值,在所述将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息之前,所述方法还包括:
根据订阅属性类别将接收到的订阅信息进行分类;
根据订阅属性值对对应同一订阅属性类别的订阅信息进行分类,并根据分类结果创建各订阅属性值对应的订阅信息表项,及根据对应同一订阅属性类别的订阅信息表项得到第三订阅信息表。
4.根据权利要求3所述的消息推送方法,其特征在于,所述推送规则包括至少一条推送子规则,每条推送子规则中包括所述目标推送属性,所述目标推送属性包括目标推送属性类别及目标推送属性值,所述根据所述目标推送属性及属性树,得到满足所述推送规则的第一订阅信息表,包括:
依次将各推送子规则作为目标推送子规则,从所述属性树的与该目标推送子规则的目标推送属性类别相同的订阅属性类别对应的目标第三订阅信息中,获得与该目标推送子规则中的目标推送属性值相同的订阅属性值对应的目标订阅信息表项,并根据得到的目标订阅信息表项生成满足该目标推送子规则的第四订阅信息表;
对得到的所有第四订阅信息表求并集,生成满足所述推送规则的第一订阅信息表。
5.根据权利要求4所述的消息推送方法,其特征在于,所述推送子规则中包括至少一条推送规则内容,每条推送规则内容中包括一目标推送属性类别及至少一个目标推送属性值,所述从所述属性树的与该目标推送子规则的目标推送属性类别相同的订阅属性类别对应的目标第三订阅信息中,获得与该目标推送子规则中的目标推送属性值相同的订阅属性值对应的目标订阅信息表项,并根据得到的目标订阅信息表项生成满足该目标推送子规则的第四订阅信息表,包括:
根据目标推送子规则的每条推送规则内容中的目标推送属性类别及目标推送属性值、所述属性树,得到订阅属性类别与目标推送属性类别相同、且订阅属性值与目标推送值相同的订阅信息;
对各条推送规则内容对应的订阅信息求交集,得到满足该目标推送子规则中所有推送规则内容的所述第四订阅信息表。
6.根据权利要求2所述的消息推送方法,其特征在于,所述订阅规则包括至少一条订阅子规则,所述订阅子规则中包括至少一条订阅规则内容,每条订阅规则内容中包括目标消息属性,所述判断所述待推送消息的推送消息属性内容是否与所述第一订阅信息表中的各条订阅信息的订阅规则匹配,包括:
判断所述推送消息属性内容中的消息属性是否满足订阅信息的至少一条订阅子规则中的各条订阅规则内容;
若满足,则判定所述待推送消息的推送消息属性内容与该订阅信息的订阅规则匹配。
7.根据权利要求2所述的消息推送方法,其特征在于,在所述将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息之前,所述方法还包括:
确定是否根据所述属性树进行双向匹配;
若是,则执行根据所述目标推送属性及属性树,得到满足所述推送规则的第一订阅信息表的步骤;
若不是,则依次将所述待推送消息与每条订阅信息进行双向匹配,并在所述待推送消息与一订阅信息匹配时,将所述待推送消息中的消息体推送给该订阅信息对应的客户端。
8.根据权利要求1所述的消息推送方法,其特征在于,所述订阅规则包括目标消息属性,所述推送消息属性内容中包括消息属性,所述推送服务器中存储有规则树,所述规则树包括满足订阅规则的不同的消息属性对应的订阅信息表项及满足订阅规则的不同的消息属性组合对应的订阅信息表项,每个订阅信息表项中包括对应同一消息属性或同一消息属性组合的订阅信息,所述将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息,包括:
根据所述推送消息属性内容中的消息属性及规则树,得到第五订阅信息表,其中,第五订阅信息表中的各条订阅信息的订阅规则与所述待推送消息的推送消息属性内容匹配;
判断所述第五订阅信息表中的各条订阅信息的订阅信息属性内容是否与所述待推送消息中的推送规则匹配,并根据订阅属性内容与所述推送规则匹配的订阅信息生成第二订阅信息表,其中,所述第二订阅信息表中的订阅信息为满足双向匹配的订阅信息。
9.一种消息推送装置,其特征在于,应用于推送服务器,所述推送服务器中存储有订阅信息,所述订阅信息中包括订阅信息属性内容及订阅规则,所述装置包括:
获取模块,用于获取待推送消息,其中,所述待推送消息中包括推送消息属性内容、推送规则及消息体;
匹配模块,用于将所述推送规则与所述订阅信息属性内容进行匹配,并将所述订阅规则与所述推送消息属性内容进行匹配,得到满足双向匹配的订阅信息;
推送模块,用于将所述消息体推送给满足双向匹配的各订阅信息对应的客户端。
10.一种推送服务器,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1-8任一所述的消息推送方法。
11.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的消息推送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910690657.8A CN112311825B (zh) | 2019-07-29 | 2019-07-29 | 消息推送方法、装置、推送服务器及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910690657.8A CN112311825B (zh) | 2019-07-29 | 2019-07-29 | 消息推送方法、装置、推送服务器及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112311825A true CN112311825A (zh) | 2021-02-02 |
CN112311825B CN112311825B (zh) | 2023-05-19 |
Family
ID=74330020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910690657.8A Active CN112311825B (zh) | 2019-07-29 | 2019-07-29 | 消息推送方法、装置、推送服务器及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112311825B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112887420A (zh) * | 2021-02-09 | 2021-06-01 | 网银在线(北京)科技有限公司 | 消息推送方法和装置、计算机可读存储介质、电子设备 |
CN112954062A (zh) * | 2021-02-25 | 2021-06-11 | 东方通信股份有限公司 | 一种pdt数字集群***的用户数据推送***及实现方法 |
CN113098978A (zh) * | 2021-04-21 | 2021-07-09 | 上海微盟企业发展有限公司 | 一种数据传输方法、装置及介质 |
CN113609384A (zh) * | 2021-07-16 | 2021-11-05 | 广州云从凯风科技有限公司 | 数据订阅方法、设备及计算机存储介质 |
CN114531349A (zh) * | 2022-02-21 | 2022-05-24 | 山东浪潮通软信息科技有限公司 | 对消息订阅进行配置的方法和装置 |
WO2023116747A1 (zh) * | 2021-12-22 | 2023-06-29 | 华为技术有限公司 | 一种消息通知方法以及相关装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080108332A1 (en) * | 2005-09-30 | 2008-05-08 | Linyi Tian | Method and system for subscribing for presence information |
CN102209084A (zh) * | 2010-03-30 | 2011-10-05 | 华为终端有限公司 | 一种推送消息的处理方法、装置和通信*** |
CN102377686A (zh) * | 2010-08-10 | 2012-03-14 | 阿里巴巴集团控股有限公司 | 一种消息订阅***、消息订阅方法及装置 |
CN104796434A (zh) * | 2015-05-08 | 2015-07-22 | 集怡嘉数码科技(深圳)有限公司 | 一种消息推送方法及服务器 |
CN106775662A (zh) * | 2016-11-29 | 2017-05-31 | 北京小米移动软件有限公司 | 推送消息的显示方法及装置 |
CN107040593A (zh) * | 2017-03-31 | 2017-08-11 | 努比亚技术有限公司 | 消息推送装置及方法 |
CN107332787A (zh) * | 2017-06-29 | 2017-11-07 | 北京奇艺世纪科技有限公司 | 一种消息分发方法和装置 |
CN107426322A (zh) * | 2017-07-31 | 2017-12-01 | 深圳市金立通信设备有限公司 | 一种推送消息目标匹配方法、服务器、终端以及计算机可读存储介质 |
CN109428922A (zh) * | 2017-08-29 | 2019-03-05 | 华为技术有限公司 | 一种订阅发布方法及服务器 |
-
2019
- 2019-07-29 CN CN201910690657.8A patent/CN112311825B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080108332A1 (en) * | 2005-09-30 | 2008-05-08 | Linyi Tian | Method and system for subscribing for presence information |
CN102209084A (zh) * | 2010-03-30 | 2011-10-05 | 华为终端有限公司 | 一种推送消息的处理方法、装置和通信*** |
CN102377686A (zh) * | 2010-08-10 | 2012-03-14 | 阿里巴巴集团控股有限公司 | 一种消息订阅***、消息订阅方法及装置 |
CN104796434A (zh) * | 2015-05-08 | 2015-07-22 | 集怡嘉数码科技(深圳)有限公司 | 一种消息推送方法及服务器 |
CN106775662A (zh) * | 2016-11-29 | 2017-05-31 | 北京小米移动软件有限公司 | 推送消息的显示方法及装置 |
CN107040593A (zh) * | 2017-03-31 | 2017-08-11 | 努比亚技术有限公司 | 消息推送装置及方法 |
CN107332787A (zh) * | 2017-06-29 | 2017-11-07 | 北京奇艺世纪科技有限公司 | 一种消息分发方法和装置 |
CN107426322A (zh) * | 2017-07-31 | 2017-12-01 | 深圳市金立通信设备有限公司 | 一种推送消息目标匹配方法、服务器、终端以及计算机可读存储介质 |
CN109428922A (zh) * | 2017-08-29 | 2019-03-05 | 华为技术有限公司 | 一种订阅发布方法及服务器 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112887420A (zh) * | 2021-02-09 | 2021-06-01 | 网银在线(北京)科技有限公司 | 消息推送方法和装置、计算机可读存储介质、电子设备 |
CN112954062A (zh) * | 2021-02-25 | 2021-06-11 | 东方通信股份有限公司 | 一种pdt数字集群***的用户数据推送***及实现方法 |
CN112954062B (zh) * | 2021-02-25 | 2022-06-03 | 东方通信股份有限公司 | 一种pdt数字集群***的用户数据推送***及实现方法 |
CN113098978A (zh) * | 2021-04-21 | 2021-07-09 | 上海微盟企业发展有限公司 | 一种数据传输方法、装置及介质 |
CN113609384A (zh) * | 2021-07-16 | 2021-11-05 | 广州云从凯风科技有限公司 | 数据订阅方法、设备及计算机存储介质 |
CN113609384B (zh) * | 2021-07-16 | 2024-05-10 | 广州云从凯风科技有限公司 | 数据订阅方法、设备及计算机存储介质 |
WO2023116747A1 (zh) * | 2021-12-22 | 2023-06-29 | 华为技术有限公司 | 一种消息通知方法以及相关装置 |
CN114531349A (zh) * | 2022-02-21 | 2022-05-24 | 山东浪潮通软信息科技有限公司 | 对消息订阅进行配置的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112311825B (zh) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112311825A (zh) | 消息推送方法、装置、推送服务器及可读存储介质 | |
US10264015B2 (en) | Real-time asynchronous event aggregation systems | |
AU2016261088B2 (en) | Social media events detection and verification | |
US10356024B2 (en) | Moderating content in an online forum | |
US20120130940A1 (en) | Real-time analytics of streaming data | |
KR20180116290A (ko) | 메시징 봇 리치 통신을 위한 기술 | |
US20200153934A1 (en) | Connected contact identification | |
CN105931123B (zh) | 基于网络账号的好友推荐方法及装置 | |
US20200257749A1 (en) | Method and a device for friend recommendation | |
US20210149720A1 (en) | User specific event threading | |
AU2014302051B2 (en) | Method and apparatus for automating network data analysis of user's activities | |
CN109753573B (zh) | 一种基于图数据库构建预设模型的处理方法及装置 | |
CN110543512A (zh) | 一种信息同步方法,装置及*** | |
CN111159524A (zh) | 监控方法和***,及存储介质 | |
WO2022187005A1 (en) | Replication of parent record having linked child records that were previously replicated asynchronously across data storage regions | |
WO2018063936A1 (en) | Systems and methods for providing a social media knowledge base | |
US20190014069A1 (en) | Aggregated notification feeds | |
US20230090132A1 (en) | State-based detection of anomalous api calls within a real-time data stream | |
CN111258796A (zh) | 服务基础设施以及在其处预测和检测潜在异常的方法 | |
CN112073395B (zh) | 一种文件分发方法和装置 | |
US11294917B2 (en) | Data attribution using frequent pattern analysis | |
CN106790610A (zh) | 一种云***消息分发方法,装置和*** | |
US20130054710A1 (en) | Categorizing email recipients into logical groups when sending a mass email | |
CN106911660B (zh) | 一种信息管理方法及装置 | |
CN113098978B (zh) | 一种数据传输方法、装置及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |