CN113360774A - 一种消息推送方法、装置、服务器和存储介质 - Google Patents
一种消息推送方法、装置、服务器和存储介质 Download PDFInfo
- Publication number
- CN113360774A CN113360774A CN202110771829.1A CN202110771829A CN113360774A CN 113360774 A CN113360774 A CN 113360774A CN 202110771829 A CN202110771829 A CN 202110771829A CN 113360774 A CN113360774 A CN 113360774A
- Authority
- CN
- China
- Prior art keywords
- message
- sending
- module
- display end
- application message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000012795 verification Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种消息推送方法、装置、服务器和存储介质,应用于消息推送系统,系统包括服务端和展示端,服务端包括调用模块、接收模块、队列模块和发送模块,方法包括:调用模块将应用消息发送至接收模块;接收模块确定调用模块存在对接收模块和展示端的消息发送权限之后,将应用消息通过队列模块发送至发送模块;发送模块根据收件人信息确定展示端,如果发送模块对应展示端,则根据展示端的在线状态确定展示端的消息发送方式;发送模块基于消息发送方式将应用消息发送至展示端。上述技术方案,实现了服务端单次发送应用消息,多个展示端可以同时接收到该应用消息,并且提升服务端的应用消息吞吐量以及应用消息的下发效率。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种消息推送方法、装置、服务器和存储介质。
背景技术
随着工业互联网的发展,市面上应用和解决方案的数量成倍增长,每个应用的实现功能、所属领域都不尽相同,令用户眼花缭乱。所以用户需要一种渠道去接收各应用的推送消息,而不是用户主动去请求询问。当前互联网的终端设备已经不限于笔记本电脑,手机或平板等终端设备也已经成为了用户获取各种信息的主要渠道。因此,如何让推送消息自动实时推送到各终端就显得尤为重要,是吸引用户发掘用户的重要渠道。
现有技术中,每个厂家乃至每个具有消息功能的应用都是单独开发的功能,其数据几乎都是隔离的,不仅耗费开发成本,而且形成数据孤岛后数据统计也相当复杂。
所以,亟需一种消息推送方法,实现单次发送推送消息,且多终端同时接收到该推送消息。
发明内容
本发明提供一种消息推送方法、装置、服务器和存储介质,以实现单次发送消息,且多终端同时接收到该消息。
第一方面,本发明实施例提供了一种消息推送方法,应用于消息推送系统,所述系统包括服务端和展示端,所述服务端包括调用模块、接收模块、队列模块和发送模块,所述方法包括:
所述调用模块将应用消息发送至所述接收模块,所述应用消息包括描述信息和收件人信息;
所述接收模块确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限之后,将所述应用消息通过所述队列模块发送至所述发送模块;
所述发送模块根据所述收件人信息确定所述展示端,如果所述发送模块对应所述展示端,则根据所述展示端的在线状态确定所述展示端的消息发送方式;
所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端。
本发明实施例提供一种消息推送方法,应用于消息推送系统,所述系统包括服务端和展示端,所述服务端包括调用模块、接收模块、队列模块和发送模块,所述方法包括:所述调用模块将应用消息发送至所述接收模块,所述应用消息包括描述信息和收件人信息;所述接收模块确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限之后,将所述应用消息通过所述队列模块发送至所述发送模块;所述发送模块根据所述收件人信息确定所述展示端,果所述发送模块对应所述展示端,则根据所述展示端的在线状态确定所述展示端的消息发送方式;所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端。上述技术方案,调用模块将应用消息发送至接收模块之后,接收模块可以确定调用模块存在对接收模块和展示端的消息发送权限,进而接收模块可以通过队列模块将应用消息发送至发送模块,进一步在发送模块对应展示端时,根据展示端的在线状态确定展示端的消息发送方式,并基于消息发送方式将应用消息发送至展示端,实现了服务端单次发送应用消息,多个展示端可以同时接收到该应用消息,并且提升服务端的应用消息吞吐量以及应用消息的下发效率。
进一步地,所述应用消息还包括权限信息,
相应地,在所述接收模块确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限之前,还包括:
所述接收模块根据所述权限信息对所述调用模块所发送的所述应用消息、所述接收模块和所述展示端进行权限校验。
进一步地,在根据所述展示端的在线状态确定所述展示端的消息发送方式之前,还包括:
所述发送模块遍历对应的各所述展示端,以确定所述发送模块是否对应当前展示端,以及确定所述当前展示端的在线状态。
进一步地,根据所述展示端的在线状态确定所述展示端的消息发送方式,包括:
如果所述展示端的在线状态为在线,则所述发送模块确定所述展示端的所述消息发送方式为实时发送;
如果所述展示端的在线状态为离线,则所述发送模块确定所述展示端的所述消息发送方式为离线发送。
进一步地,所述服务端还包括消息存储模块和地址存储模块,相应地,在所述接收模块将所述应用消息通过所述队列模块发送至所述发送模块之前,还将应用消息发送至所述消息存储模块,所述方法还包括:
所述消息存储模块接收并存储所述应用消息;
所述地址存储模块获取并存储执行离线发送的发送模块的第一地址信息。
进一步地,在确定所述展示端的所述消息发送方式为离线发送之后,还包括:
如果所述发送模块的第二地址信息与所述第一地址信息一致,则所述发送模块根据所述应用消息确定所述展示端的推送通道。
进一步地,所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端,包括:
如果所述发送方式为实时发送,则所述发送模块将所述应用消息实时发送至所述展示端;
如果所述发送方式为离线发送,则所述发送模块基于所述推送通道将所述应用消息离线发送至所述展示端。
第二方面,本发明实施例还提供了一种消息推送装置,包括:
调用模块,用于将应用消息发送至所述接收模块,所述应用消息包括描述信息和收件人信息;
接收模块,用于确定所述调用模块存在对所述接收模块和所述展示端的消息发送权限之后,将所述应用消息通过所述队列模块发送至所述发送模块;
发送模块,用于根据所述收件人信息确定所述展示端,如果所述发送模块对应所述展示端,还用于根据所述展示端的在线状态确定所述展示端的消息发送方式;用于基于所述消息发送方式将所述应用消息发送至所述展示端。
第三方面,本发明实施例还提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面中任一所述的消息推送方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面中任一所述的消息推送方法。
需要说明的是,上述计算机指令可以全部或者部分存储在计算机可读存储介质上。其中,计算机可读存储介质可以与消息推送装置的处理器封装在一起的,也可以与消息推送装置的处理器单独封装,本申请对此不做限定。
本申请中第二方面、第三方面以及第四方面的描述,可以参考第一方面的详细描述;并且,第二方面、第三方面以及第四方面的描述的有益效果,可以参考第一方面的有益效果分析,此处不再赘述。
在本申请中,上述消息推送装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为本发明实施例提供的消息推送系统的示意图;
图2为本发明实施例一提供的一种消息推送方法的流程图;
图3为本发明实施例二提供的一种消息推送方法的流程图;
图4为本发明实施例二提供的一种消息推送方法的实现流程图;
图5为本发明实施例三提供的一种消息推送装置的结构示意图;
图6为本发明实施例四提供的一种服务器的结构示意图;
图7为本发明实施例五提供的一种消息推送系统的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选的还包括其他没有列出的步骤或单元,或可选的还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
图1为本发明实施例提供的消息推送系统的示意图,消息推送系统可以包括服务端和展示端,服务端可以包括调用模块、接收模块、队列模块和发送模块,服务端可以为服务器集群,调用模块可以为调用服务器、接收模块可以为接收服务器、队列模块可以为消息队列,发送模块可以为发送服务器,接收服务器、消息队列和发送服务器可以集成在实时消息中台,并且通过对外开放接口网关与调用服务器通信连接,进而调用服务器可以通过实时消息中台将应用消息发送至多个终端。展示端可以为多个用户终端,用户终端可以为手机、平板、家用电器或者电子手表等终端设备。
需要说明的是,服务器集群中还可以包括用于存储地址路由缓存的地址服务器、用于存储应用消息的高性能数据库服务器、用于存储调用服务器与接收服务器以及调用服务器与展示端的对应关系的权限数据库服务器、以及各微服务器集群。当然,还可以包括用于定时访问服务器集群内的各个服务器,判断其健康性的消息中台服务器,消息中台服务器可以实现心跳监听逻辑。
以下将结合示图1对本发明实施例所提供的消息推送方法进行详细的说明。
实施例一
图2为本发明实施例一提供的一种消息推送方法的流程图,本实施例可适用于将同一应用消息发送至多个展示端进行展示的情况,该方法可以应用于如图1所示的消息推送系统,由服务端来执行,如图2所示所述方法具体包括如下步骤:
步骤210、所述调用模块将应用消息发送至所述接收模块。
其中,服务端可以包括调用模块,调用模块可以为第三方调用端或者第三方调用系统,第三方调用系统可以由需要消息推送能力的子系统组成,一般为后端服务器,第三方调用系统可以通过调用接收模块的发送接口,将应用消息发送至接收模块。服务端还可以包括接收模块,接收模块可以接收调用模块发来的应用消息。另外,应用消息可以包括描述信息和收件人信息等。
具体地,调用模块可以调用发送接口,向接收模块发送消息请求,该消息请求可以包括应用消息。
本发明实施例中,发送接口可以为对外开放接口网关。
步骤220、所述接收模块确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限之后,将所述应用消息通过所述队列模块发送至所述发送模块。
其中,应用消息还可以包括权限信息。展示端可以包括用户终端,进而可以包括手机或者平板等终端设备。队列模块可以为消息队列(Message Queue,MQ),消息队列为消息的传输过程中临时保存消息的容器,在大数据量请求发送消息的场景下,可以保证消息的发送顺序,还可以用于发送延迟消息。消息队列可以基于先进先出的思想,实现对消息的接收、排序和发送。本发明实施例中,队列模块可以接收接收模块发送的应用消息,并对应用消息进行排序,进而可以将应用消息发送至发送模块。发送模块可以接收消息队列中发出的应用消息。
具体地,接收模块可以根据权限信息确定应用消息是否存在对接收模块和展示端的消息发送权限,具体可以基于权限信息对应用消息和接收模块,以及应用消息和展示端进行权限校验,如果校验成功,表明应用消息存在对接收模块和展示端的消息发送权限,则通过队列模块将应用消息发送至发送模块,如果校验失败,表明应用消息不存在对接收模块或者展示端的消息发送权限,则结束流程,并将权限校验失败原因发送至管理员终端并进行展示。
本发明实施例中,如果校验成功,表明应用消息存在对接收模块和展示端的消息发送权限,同时还可以基于高性能数据库服务器保存应用消息。
当然,需要说明的是,接收模块和展示端可以接收的应用类型可以预先存储在权限数据库服务器中。接收模块可以调用权限数据库服务器中的预存数据确定应用消息是否存在对接收模块和展示端的消息发送权限。
另外,调用模块、接收模块、队列模块和发送模块可以为服务器集群中的子服务器,多个子服务器可以实现同时将应用消息下发至多个展示端。
步骤230、所述发送模块根据所述收件人信息确定所述展示端,如果所述发送模块对应所述展示端,则根据所述展示端的在线状态确定所述展示端的消息发送方式。
其中,收件人信息可以包括展示端的地址信息或者标识信息等。发送模块可以接收接收模块通过队列模块发送的应用消息,并将应用消息实时发送或者离线发送至展示端。
具体地,发送模块可以根据收件人信息确定应用消息对应的待发送展示端,然后发送模块遍历对应的所有下属展示端,以确定下属展示端的在线状态,进而确定待发送展示端的消息发送方式。如果下属展示端所包含的在线下属展示端中包含待发送展示端,则确定消息发送方式为实时发送;如果下属展示端所包含的在线下属展示端中不包含待发送展示端,则确定消息发送方式为离线发送。
需要说明的是,在确定消息发送方式为离线发送之后,还需要确定该待发送展示端对应的离线消息发送服务器,如果离线消息发送服务器为当前发送模块,则基于当前发送模块将应用消息离线发送至该待发送展示端;如果离线消息发送服务器为其他发送模块,则结束流程。
本发明实施例中,为了确保展示端不会接受到重复的应用消息,各展示端可以对应唯一的离线消息发送服务器。
步骤240、所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端。
具体地,如果展示终端的在线状态为在线,则对应的消息发送方式为实时发送,进而发送模块可以将应用消息以实时消息的形式发送至展示终端;如果展示终端的在线状态为离线,则对应的消息发送方式为离线发送,且确定当前发送模块为展示终端对应的离线消息发送服务器,进而发送模块可以将应用消息以离线消息的形式发送至展示终端。
本发明实施例中,展示终端接收到应用消息之后,可以基于预设界面展示应用消息。
本发明实施例一提供的一种消息推送方法,应用于消息推送系统,所述系统包括服务端和展示端,所述服务端包括调用模块、接收模块、队列模块和发送模块,所述方法包括:调用模块将应用消息发送至接收模块,应用消息包括描述信息和收件人信息;接收模块确定调用模块存在对接收模块和展示端的消息发送权限之后,将应用消息通过队列模块发送至发送模块;所述发送模块根据所述收件人信息确定所述展示端,如果所述发送模块对应所述展示端,则根据所述展示端的在线状态确定所述展示端的消息发送方式;所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端。上述技术方案,调用模块将应用消息发送至接收模块之后,接收模块可以确定调用模块存在对接收模块和展示端的消息发送权限,进而接收模块可以通过队列模块将应用消息发送至发送模块,进一步在发送模块对应展示端时,根据展示端的在线状态确定展示端的消息发送方式,并基于消息发送方式将应用消息发送至展示端,实现了服务端单次发送应用消息,多个展示端可以同时接收到该应用消息,并且提升服务端的应用消息吞吐量以及应用消息的下发效率。
实施例二
图3为本发明实施例二提供的一种消息推送方法的流程图,本实施例是在上述实施例的基础上进行具体化。在本实施例中,该方法同样可以应用于如图1所示的消息推送系统,消息推送系统包括:服务端和展示端,所述服务端可以包括调用模块、接收模块、队列模块、发送模块、消息存储模块和地址存储模块,该方法还可以包括:
步骤310、所述调用模块将应用消息发送至所述接收模块。
其中,所述应用消息可以包括描述信息和收件人信息。
步骤311、所述接收模块根据所述权限信息对所述调用模块所发送的所述应用消息、所述接收模块和所述展示端进行权限校验。
其中,应用消息还可以包括权限信息。服务器集群还包括用于接收模块和展示端可以接收的应用类型的权限数据库服务器。
具体地,接收模块可以基于权限数据库服务器以及权限信息对应用消息、接收模块和展示端进行权限校验,以确定应用消息是否存在对接收模块和展示端的消息发送权限。
另外,应用消息还可以包括安全信息,接收模块还可以根据安全信息确定该应用信息是否可以基于服务器集群发送至展示端。
一种实施方式中,步骤311具体可以包括:
所述接收模块根据所述权限信息和所述接收模块的第一标识信息对所述调用模块所下发的所述应用消息所属的应用与所述接收模块进行权限校验;所述接收模块根据所述权限信息和所述展示端的第二标识信息对所述调用模块所下发的所述应用消息所属的应用与所述展示端进行权限校验。
具体地,可以根据接收模块的第一标识信息从权限数据库服务器中确定接收模块所支持的第一应用类型,还可以根据展示端的第二标识信息从权限数据库服务器中确定接收模块所支持的第二应用类型,进而可以根据权限信息确定应用消息所属的预设应用类型,如果第一应用类型、第二应用类型和预设应用类型均一致,则表明应用消息存在对接收模块和展示端的消息发送权限,如果第一应用类型或者第二应用类型与预设应用类型不一致,则表明应用消息不存在对接收模块或者展示端的消息发送权限,则无法基于服务端将应用消息发送至展示端。
本发明实施例所提供的消息推送方法可以实现多类型应用的安全逻辑,各类型应用对应一套登录数据和消息数据,基于此数据隔离,做到低代码实现服务器集群将应用消息发送至多个展示端,即发送至多个终端。
步骤312、所述接收模块确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限之后,将所述应用消息通过所述队列模块发送至所述发送模块。
具体地,如果校验成功,表明应用消息存在对接收模块和展示端的消息发送权限,则通过队列模块将应用消息发送至发送模块,如果校验失败,表明应用消息不存在对接收模块或者展示端的消息发送权限,则结束流程,并将权限校验失败原因发送至管理员终端并进行展示。
一种实施方式中,将所述应用消息通过所述队列模块发送至所述发送模块,包括:
所述接收模块将所述应用消息发送至所述队列模块;所述队列模块对各所述应用消息进行排序,并基于先进先出模式将各所述应用消息发送至所述发送模块。
如前述实施例,队列模块可以为消息队列,消息队列为消息的传输过程中临时保存消息的容器,在大数据量请求发送消息的场景下,保证消息的发送顺序,并可以用于发送延迟消息。消息队列可以基于先进先出思想,实现对消息的接收、排序和发送。
本发明实施例中,队列模块可以接收接收模块发送的应用消息,并对应用消息进行排序,进而可以将应用消息发送至发送模块。发送模块可以接收消息队列中发出的应用消息。
一种实施方式中,所述接收模块在确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限的同时,所述接收模块还可以将应用消息发送至消息存储模块,该方法还可以包括:
步骤313、所述消息存储模块接收并存储所述应用消息。
其中,消息存储模块可以为消息存储服务器。
具体地,服务器集群还可以包括消息存储服务器,用于存储应用消息,以实现历史消息记录的查询。
步骤314、所述地址存储模块获取并存储执行离线发送的发送模块的第一地址信息。
其中,地址存储模块可以为地址存储服务器。
具体地,服务器集群还可以包括地址存储服务器,用于存储执行离线发送的发送模块的第一地址信息,该第一地址信息可以为离线消息发送服务器的地址,展示端可以对应唯一的离线消息发送服务器。
需要说明的是,应用消息还可以包括第一地址信息。
步骤315、所述发送模块根据所述收件人信息确定展示端。
其中,收件人信息可以包括展示端的地址信息。
具体地,可以根据展示端的地址信息确定展示端。
步骤316、所述发送模块遍历对应的各所述展示端,以确定所述展示端的在线状态。
其中,各发送模块可以对应多个展示端,应用消息可以发送至发送模块所对应的多个展示端。
具体地,发送模块可以遍历对应的所有展示端,如果展示端与发送模块之间网络通道状态为联通,则确定该展示端的在线状态为在线,如果展示端与发送模块之间网络通道状态为未联通,则确定该展示端的在线状态为离线。
步骤317、所述发送模块根据所述展示端的在线状态确定所述展示端的消息发送方式。
一种实施方式中,步骤317具体可以包括:
如果所述展示端的在线状态为在线,则所述发送模块确定所述展示端的所述消息发送方式为实时发送;如果所述展示端的在线状态为离线,则所述发送模块确定所述展示端的所述消息发送方式为离线发送。
一种实施方式中,在确定所述展示端的所述消息发送方式为离线发送之后,如果所述发送模块的第二地址信息与所述第一地址信息一致,则所述发送模块根据所述应用消息确定所述展示端的推送通道。
具体地,分布式环境下各服务器的内部处理逻辑为相同的,如果未确定展示端的离线消息发送服务器,那么每一个离线消息发送服务器都会发送离线消息至展示端,可能造成应用消息的重复发送。
所以在确定展示端的消息发送方式为离线发送之后,如果发送模块的第二地址信息与展示端对应的离线消息发送服务器的第一地址信息一致,则根据应用消息确定应用类型,进一步将该应用消息所属终端厂商推送通道确定为展示端的推送通道。
需要说明的是,如果发送模块的第二地址信息与展示端对应的离线消息发送服务器的第一地址信息不一致,则结束流程。此时,该展示终端对应的离线消息发送服务器可以为服务器集群中的其他发送模块,进一步该发送模块可以将离线消息发送至该展示终端。
步骤318、所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端。
一种实施方式中,步骤318具体可以包括:
如果所述发送方式为实时发送,则所述发送模块将所述应用消息实时发送至所述展示端;如果所述发送方式为离线发送,则所述发送模块基于所述推送通道将所述应用消息离线发送至所述展示端。
具体地,如果展示终端的在线状态为在线,则对应的消息发送方式为实时发送,进而发送模块可以将应用消息以实时消息的形式发送至展示终端;如果展示终端的在线状态为离线,则对应的消息发送方式为离线发送,且确定当前发送模块为展示终端对应的离线消息发送服务器,进而发送模块可以将应用消息以离线消息的形式发送至展示终端。
本发明实施例二提供的一种消息推送方法,应用于消息推送系统,所述系统包括服务端和展示端,所述服务端包括调用模块、接收模块、队列模块和发送模块,所述方法包括:所述调用模块将应用消息发送至所述接收模块,所述应用消息包括描述信息和收件人信息;所述接收模块确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限之后,将所述应用消息通过所述队列模块发送至所述发送模块;所述发送模块根据所述收件人信息确定所述展示端,果所述发送模块对应所述展示端,则根据所述展示端的在线状态确定所述展示端的消息发送方式;所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端。上述技术方案,调用模块将应用消息发送至接收模块之后,接收模块可以确定调用模块存在对接收模块和展示端的消息发送权限,进而接收模块可以通过队列模块将应用消息发送至发送模块,进一步在发送模块对应展示端时,根据展示端的在线状态确定展示端的消息发送方式,并基于消息发送方式将应用消息发送至展示端,实现了服务端单次发送应用消息,多个展示端可以同时接收到该应用消息,并且提升服务端的应用消息吞吐量以及应用消息的下发效率。
另外,本发明实施例实现了高性能的服务器和展示端的连接处理逻辑,根据服务器请求量的大小动态提升处理的线程数,以提升服务器的吞吐量和处理效率,实时性非常高。
图4为本发明实施例二提供的一种消息推送方法的实现流程图,示例性的给出了其中一种实现方式。如图4所示,该实现方式包括:
步骤410、调用模块将应用消息发送至接收模块。
其中,应用消息可以包括描述信息、收件人信息和权限信息。
步骤411、接收模块根据权限信息对调用模块所发送的所述应用消息、所述接收模块和所述展示端进行权限校验。
步骤412、接收模块根据权限校验结果确定应用消息是否存在对接收模块和展示端的消息发送权限。
若接收模块确定应用消息存在对接收模块和展示端的消息发送权限,则继续执行步骤413,否则,将权限校验失败原因发送至管理员终端并进行展示。
步骤413、消息存储模块接收并存储应用消息。
步骤414、地址存储模块获取并存储执行离线发送的发送模块的第一地址信息。
步骤415、接收模块将应用消息通过队列模块发送至发送模块。
需要说明的是,在步骤412之后,可以同时执行步骤413、步骤414和步骤415。
步骤416、发送模块根据收件人信息确定当前展示端。
步骤417、发送模块遍历对应的各展示端,以确定当前展示端的在线状态。
如果展示端的在线状态为在线,则执行步骤418-419;如果展示端的在线状态为离线,则执行步骤420-423。
步骤418、发送模块确定展示端的消息发送方式为实时发送。
步骤419、发送模块将应用消息以实时消息的形式发送至展示端。
步骤420、发送模块确定展示端的消息发送方式为离线发送。
步骤421、发送模块判断第二地址信息与第一地址信息是否一致。
如果第二地址信息与第一地址信息一致,则继续执行步骤422-423;否则,结束流程。
步骤422、发送模块根据应用消息确定展示端的推送通道。
步骤423、发送模块基于推送通道将应用消息离线至展示端。
本发明实施例二提供的一种消息推送方法的实现方式,调用模块将应用消息发送至接收模块之后,接收模块可以确定调用模块存在对接收模块和展示端的消息发送权限,进而接收模块可以通过队列模块将应用消息发送至发送模块,进一步在发送模块对应展示端时,根据展示端的在线状态确定展示端的消息发送方式,并基于消息发送方式将应用消息发送至展示端,实现了服务端单次发送应用消息,多个展示端可以同时接收到该应用消息,并且提升服务端的应用消息吞吐量以及应用消息的下发效率。
实施例三
图5为本发明实施例三提供的一种消息推送装置的结构示意图,该装置可以适用于将同一应用消息发送至多个展示端进行展示的情况,提升服务端的应用消息吞吐量以及应用消息的下发效率。该装置可以通过软件和/或硬件实现,并一般集成在服务器中。
如图5所示,该装置包括:
调用模块510,用于将应用消息发送至所述接收模块,所述应用消息包括描述信息和收件人信息;
接收模块520,用于确定所述调用模块存在对所述接收模块和所述展示端的消息发送权限之后,将所述应用消息通过所述队列模块发送至所述发送模块;
发送模块530,用于根据所述收件人信息确定所述展示端,如果所述发送模块对应所述展示端,还用于根据所述展示端的在线状态确定所述展示端的消息发送方式;用于基于所述消息发送方式将所述应用消息发送至所述展示端。
本实施例提供的一种消息推送装置,可以集成在服务端,且应用于消息推送系统,所述系统包括服务端和展示端,所述服务端包括调用模块、接收模块、队列模块和发送模块,该装置通过所述调用模块将应用消息发送至所述接收模块,所述应用消息包括描述信息和收件人信息;所述接收模块确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限之后,将所述应用消息通过所述队列模块发送至所述发送模块;所述发送模块根据所述收件人信息确定所述展示端,果所述发送模块对应所述展示端,则根据所述展示端的在线状态确定所述展示端的消息发送方式;所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端。上述技术方案,调用模块将应用消息发送至接收模块之后,接收模块可以确定调用模块存在对接收模块和展示端的消息发送权限,进而接收模块可以通过队列模块将应用消息发送至发送模块,进一步在发送模块对应展示端时,根据展示端的在线状态确定展示端的消息发送方式,并基于消息发送方式将应用消息发送至展示端,实现了服务端单次发送应用消息,多个展示端可以同时接收到该应用消息,并且提升服务端的应用消息吞吐量以及应用消息的下发效率。
在上述实施例的基础上,所述应用消息还包括权限信息,相应地,所述接收模块520,还用于根据所述权限信息对所述调用模块所发送的所述应用消息、所述接收模块和所述展示端进行权限校验。
在上述实施例的基础上,所述发送模块530,还用于遍历对应的各所述展示端,以确定所述展示端的在线状态。
可选的,根据所述展示端的在线状态确定所述展示端的消息发送方式,包括:如果所述展示端的在线状态为在线,则所述发送模块确定所述展示端的所述消息发送方式为实时发送;如果所述展示端的在线状态为离线,则所述发送模块确定所述展示端的所述消息发送方式为离线发送。
在上述实施例的基础上,所述服务端还包括消息存储模块和地址存储模块,该装置还包括:消息存储模块,用于接收并存储所述应用消息;地址存储获取模块,用于获取并存储执行离线发送的发送模块的第一地址信息。
在上述实施例的基础上,如果所述发送模块的第二地址信息与所述第一地址信息一致,所述发送模530还用于:根据所述应用消息确定所述展示端的推送通道。
在上述实施例的基础上,如果所述发送方式为实时发送,所述发送模块530还用于:将所述应用消息实时发送至所述展示端;如果所述发送方式为离线发送,所述发送模块530还用于:基于所述推送通道将所述应用消息离线发送至所述展示端。
本发明实施例所提供的消息推送装置可执行本发明任意实施例所提供的消息推送方法,具备执行方法相应的功能模块和有益效果。
实施例四
图6为本发明实施例四提供的一种服务器的结构示意图,如图6所示,该服务器包括处理器610和存储器620;服务器中处理器610的数量可以是一个或多个,图6中以一个处理器610为例;服务器中的处理器610和存储器620可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器620作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的消息推送方法对应的程序指令/模块(例如,消息推送装置中的调用模块510、接收模块520和发送模块530)。处理器610通过运行存储在存储器620中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的消息推送方法。
处理器610可以包括一个或多个中央处理器(central processing unit,CPU),还可以包括多个处理器610。这些处理器610中的每一个CPU可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器610可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器620可进一步包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例提供的服务器可以执行上述实施例提供的消息推送方法,具备相应的功能和有益效果。
实施例五
图7为本发明实施例五提供的一种消息推送系统的示意图,如图7所示,所述系统包括通过网络连接的如前述实施例四所述的服务器710和多个展示端720,所述展示端用于展示应用消息。
本发明实施例提供的消息推送系统可以执行上述实施例提供的消息推送方法,具备相应的功能和有益效果。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种消息推送方法,该方法包括:
所述调用模块将应用消息发送至所述接收模块,所述应用消息包括描述信息和收件人信息;
所述接收模块确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限之后,将所述应用消息通过所述队列模块发送至所述发送模块;
所述发送模块根据所述收件人信息确定所述展示端,如果所述发送模块对应所述展示端,则根据所述展示端的在线状态确定所述展示端的消息发送方式;
所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、ROM、可擦式可编程只读存储器(erasable programmable read only memory,EPROM)、寄存器、硬盘、光纤、CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(application specificintegrated circuit,ASIC)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的消息推送方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述消息推送装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种消息推送方法,其特征在于,应用于消息推送系统,所述系统包括服务端和展示端,所述服务端包括调用模块、接收模块、队列模块和发送模块,所述方法包括:
所述调用模块将应用消息发送至所述接收模块,所述应用消息包括描述信息和收件人信息;
所述接收模块确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限之后,将所述应用消息通过所述队列模块发送至所述发送模块;
所述发送模块根据所述收件人信息确定所述展示端,如果所述发送模块对应所述展示端,则根据所述展示端的在线状态确定所述展示端的消息发送方式;
所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端。
2.根据权利要求1所述的消息推送方法,其特征在于,所述应用消息还包括权限信息,
相应地,在所述接收模块确定所述应用消息存在对所述接收模块和所述展示端的消息发送权限之前,还包括:
所述接收模块根据所述权限信息对所述调用模块所发送的所述应用消息、所述接收模块和所述展示端进行权限校验。
3.根据权利要求1所述的消息推送方法,其特征在于,在根据所述展示端的在线状态确定所述展示端的消息发送方式之前,还包括:
所述发送模块遍历对应的各所述展示端,以确定所述展示端的在线状态。
4.根据权利要求1所述的消息推送方法,其特征在于,根据所述展示端的在线状态确定所述展示端的消息发送方式,包括:
如果所述展示端的在线状态为在线,则所述发送模块确定所述展示端的所述消息发送方式为实时发送;
如果所述展示端的在线状态为离线,则所述发送模块确定所述展示端的所述消息发送方式为离线发送。
5.根据权利要求4所述的消息推送方法,其特征在于,所述服务端还包括消息存储模块和地址存储模块,
相应地,所述接收模块在将所述应用消息通过所述队列模块发送至所述发送模块之前,还将应用消息发送至所述消息存储模块,所述方法还包括:
所述消息存储模块接收并存储所述应用消息;
所述地址存储模块获取并存储执行离线发送的发送模块的第一地址信息。
6.根据权利要求5所述的消息推送方法,其特征在于,在所述发送模块确定所述展示端的所述消息发送方式为离线发送之后,还包括:
如果所述发送模块的第二地址信息与所述第一地址信息一致,则所述发送模块根据所述应用消息确定所述展示端的推送通道。
7.根据权利要求6所述的消息推送方法,其特征在于,所述发送模块基于所述消息发送方式将所述应用消息发送至所述展示端,包括:
如果所述发送方式为实时发送,则所述发送模块将所述应用消息实时发送至所述展示端;
如果所述发送方式为离线发送,则所述发送模块基于所述推送通道将所述应用消息离线发送至所述展示端。
8.一种消息推送装置,其特征在于,包括:
调用模块,用于将应用消息发送至接收模块,所述应用消息包括描述信息和收件人信息;
接收模块,用于确定所述调用模块存在对所述接收模块和展示端的消息发送权限之后,将所述应用消息通过队列模块发送至发送模块;
发送模块,用于根据所述收件人信息确定所述展示端,如果所述发送模块对应所述展示端,还用于根据所述展示端的在线状态确定所述展示端的消息发送方式;用于基于所述消息发送方式将所述应用消息发送至所述展示端。
9.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一所述的消息推送方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的消息推送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110771829.1A CN113360774A (zh) | 2021-07-08 | 2021-07-08 | 一种消息推送方法、装置、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110771829.1A CN113360774A (zh) | 2021-07-08 | 2021-07-08 | 一种消息推送方法、装置、服务器和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113360774A true CN113360774A (zh) | 2021-09-07 |
Family
ID=77538906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110771829.1A Pending CN113360774A (zh) | 2021-07-08 | 2021-07-08 | 一种消息推送方法、装置、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360774A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106921717A (zh) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | 一种基于移动终端的消息推送方法及系统 |
CN111385330A (zh) * | 2018-12-29 | 2020-07-07 | 广州市百果园信息技术有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
CN111988386A (zh) * | 2020-08-11 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种云管理平台实时消息推送方法、装置及计算机可读介质 |
CN112187903A (zh) * | 2020-09-22 | 2021-01-05 | 华云数据控股集团有限公司 | 一种消息推送方法、装置及消息服务系统 |
CN113067882A (zh) * | 2021-03-31 | 2021-07-02 | 建信金融科技有限责任公司 | 一种消息处理方法、装置、电子设备及介质 |
-
2021
- 2021-07-08 CN CN202110771829.1A patent/CN113360774A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106921717A (zh) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | 一种基于移动终端的消息推送方法及系统 |
CN111385330A (zh) * | 2018-12-29 | 2020-07-07 | 广州市百果园信息技术有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
CN111988386A (zh) * | 2020-08-11 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种云管理平台实时消息推送方法、装置及计算机可读介质 |
CN112187903A (zh) * | 2020-09-22 | 2021-01-05 | 华云数据控股集团有限公司 | 一种消息推送方法、装置及消息服务系统 |
CN113067882A (zh) * | 2021-03-31 | 2021-07-02 | 建信金融科技有限责任公司 | 一种消息处理方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109343963B (zh) | 一种容器集群的应用访问方法、装置及相关设备 | |
CN111580995B (zh) | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统 | |
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
CN109076024A (zh) | 数据控制方法及终端设备 | |
CN109408243B (zh) | 一种基于rdma的数据处理方法、装置和介质 | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN112465359A (zh) | 算力调用方法和装置 | |
CN107193673A (zh) | 一种报文处理方法及设备 | |
US8832215B2 (en) | Load-balancing in replication engine of directory server | |
CN103955436A (zh) | 一种数据处理装置和终端 | |
US9621633B2 (en) | Flow director-based low latency networking | |
CN113361913A (zh) | 一种通信业务编排方法、装置、计算机设备及存储介质 | |
CN108304272B (zh) | 一种数据io请求的处理方法及装置 | |
CN113965628A (zh) | 消息调度方法、服务器和存储介质 | |
CN105373563B (zh) | 数据库切换方法及装置 | |
US10313450B2 (en) | Method for transparently connecting augmented network socket operations | |
CN106803841A (zh) | 消息队列数据的读取方法、装置及分布式数据存储系统 | |
CN112104679A (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
CN113360774A (zh) | 一种消息推送方法、装置、服务器和存储介质 | |
CN107920035B (zh) | 用于确定性交换式以太网的多核处理器类型装置、系统及运载工具 | |
US9479579B2 (en) | Grouping processing method and system | |
CN111092817A (zh) | 一种数据传输方法及装置 | |
CN116501383B (zh) | 微服务的分配方法、装置、电子设备及可读存储介质 | |
CN114095502B (zh) | 一种业务处理方法、系统、装置及介质 | |
US9674282B2 (en) | Synchronizing SLM statuses of a plurality of appliances in a cluster |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210907 |