CN108228625B - 一种推送消息处理方法及装置 - Google Patents
一种推送消息处理方法及装置 Download PDFInfo
- Publication number
- CN108228625B CN108228625B CN201611160008.XA CN201611160008A CN108228625B CN 108228625 B CN108228625 B CN 108228625B CN 201611160008 A CN201611160008 A CN 201611160008A CN 108228625 B CN108228625 B CN 108228625B
- Authority
- CN
- China
- Prior art keywords
- message
- push
- subscription
- webpage
- push 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.)
- Active
Links
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
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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
技术领域
本发明涉及通信技术领域,具体涉及一种推送消息处理方法及装置。
背景技术
随着网页(简称Web页)技术的广泛应用,越来越多的应用客户端开始使用内嵌Web页来处理一些随时可能变化的业务。复杂的业务常常需要Web页能够实时地接收并处理来自后台的推送(Push)消息。传统客户端内嵌Web页接收Push消息的方法主要有两种,一种是Js轮询,另一种是WebSocket长连接。但不管是哪一种都存在较大的缺陷。JS轮询代价过高,延迟较大。WebSocket长连接与传统后台不能完全兼容,需要后台专门搭建相应的服务,部分较老的浏览器内核并不支持该特性,因此存在兼容性问题。因此,亟需一种高效,稳定,易于实现的Web接收Push消息的技术来支持复杂多变的Web业务。
发明内容
有鉴于此,本发明实施例期望提供一种推送消息处理方法及装置,能提升Web页收发推送消息的稳定性。
本发明的技术方案是这样实现的:
本发明实施例提供了一种推送消息处理方法,所述方法包括:
获取待分发的推送消息;
对所述待分发的推送消息进行解析,确定所述待分发的推送消息中各个推送消息所属的消息类型;
基于订阅关系查询与所述消息类型相关的网页进程;
根据查询结果统计订阅所述消息类型所对应推送消息的网页进程;
分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。
本发明实施例提供了一种推送消息处理装置,所述装置包括:
获取单元,用于获取待分发的推送消息;
确定单元,用于对所述待分发的推送消息进行解析,确定所述待分发的推送消息中各个推送消息所属的消息类型;
查询单元,用于基于订阅关系查询与所述消息类型相关的网页进程;
统计单元,用于根据查询结果统计订阅所述消息类型所对应推送消息的网页进程;
分发单元,用于分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。
采用本发明实施例所述技术方案,终端获取待分发的推送消息;对所述待分发的推送消息进行解析,确定所述待分发的推送消息中各个推送消息所属的消息类型;基于订阅关系查询与所述消息类型相关的网页进程;根据查询结果统计订阅所述消息类型所对应推送消息的网页进程;分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。可见,网页进程无需定时向服务器请求推送消息,终端只需要依据网页进程的订阅关系,即可向网页进程发送该网页进程订阅的消息类型的推送消息,在终端侧维护订阅关系简单且易实现。同时,网页进程无需维持与服务器侧的连接,服务器也无需搭建专用服务,只需网页进程保持与终端客户端的通信,在能够与终端客户端相互调用的情况下,即可实现推送消息的收发,这样,不仅节省了服务器侧搭建专用服务或专用平台的成本,避免了因需要搭建专用服务而引起的与传统平台不兼容的问题;还提升了Web接收推送消息的稳定性。
附图说明
图1为本发明实施例提供的采用JS轮询方式接收推送消息的方法的示意图;
图2为本发明实施例提供的采用WebSocket长连接方式接收推送消息的方法的示意图;
图3为本发明实施例提供的推送消息处理方法的实现流程示意图;
图4为本发明实施例提供的订阅关系的一种存储形式示意图;
图5为本发明实施例提供的订阅关系的另一种存储形式示意图;
图6为本发明实施例提供的通过客户端与服务器之间的数据通道接收服务器传输的推送消息的数据传输框图;
图7本发明实施例提供的消息管理器根据第一网页进程的请求情况处理推送消息的一种流程示意图;
图8本发明实施例提供的消息管理器根据第一网页进程的请求情况处理推送消息的另一种流程示意图;
图9为本发明实施例提供的推送消息处理装置的组成结构示意图;
图10是本发明实施例中用于实现任推送消息处理装置的服务器的一个可选的硬件结构示意图;
图11为本发明实施例提供的推送消息处理系统的一种交互示意图。
具体实施方式
为了更好的解释本发明,下面,先介绍两种可实施的接收推送消息的方法。
图1示出了采用JS轮询方式接收推送消息的方法的流程示意图,如图1所示,该流程主要包括:服务器(Server)端将需要Push的数据置入消息队列;客户端内嵌Web页使用定时器JS定时向Server请求数据,Server检查队列是否有待推送的消息,如果有,就向客户端返回Push数据。这里,JS定时请求的过程即为轮询。虽然高频率的轮询可以提升Push消息的及时性,然而却很耗费性能。而低频率的轮询可能会导致Push消息不及时。这里,推送(Push),是服务器(Server)向客户端(Client)推送数据的行为。
图2示出了采用WebSocket长连接方式接收推送消息的方法的流程示意图,如图2所示,该流程主要包括:Server搭建专用后台,专用后台负责建立与WebScoket的长连接服务,Web加载后开始与Server的专用后台建立长连接,并能够接收来自于Server的实时消息。但是,专用后台与传统后台不能兼容,需要单独搭建服务;部分较老的浏览器内核并不支持该单独搭建服务特性,因此存在兼容性问题。另外,页面刷新后需要重新连接。
因此,亟需一种高效,稳定,易于实现的Web接收Push消息的技术来支持复杂多变的Web业务。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明实施例提供一种推送消息处理方法,所述方法可应用于终端侧,如图3所示,所述方法主要包括:
步骤301:获取待分发的推送消息。
在一实施方式中,所述获取待分发的推送消息,包括:
由位于终端客户端的消息管理器获取待分发的推送消息。
作为一种实施方式,所述消息管理器获取待分发的推送消息,包括:
基于客户端与服务器之间的数据通道接收服务器发送的推送消息;
根据协议命令字判断所述推送消息是否是待分发的推送消息。
其中,所述数据通道是客户端与服务器保持连接的数据通道。
这里,所述的保持连接可以是保持长连接。
这里,所述协议命令字为预设协议命令字。
由于现有的客户端(Client)与服务器(Server)之间的数据通道(简称CS通道)协议并不支持服务器直接向网页中Push消息,这里,所述的Push是服务器向客户端推送数据的行为,因此需要改造和定制一些协议。
那么,本发明新增一种协议,可称之为Push4Web协议。Push4Web协议的内容包括协议命令字、Push名、Push体三部分;其中,
协议命令字:用来区分其他CS通道的协议,例如,协议命令字可以是一个二进制的数据。该协议命令字对应的协议数据都被认作为Push4Web协议;
Push名:用于表征推送消息的类型,例如,Push名可用一段字符串表示。
Push体:用于表征推送消息所携带的具体内容,例如,Push体可用一段字符串表示。
在一具体实施方式中,所述消息管理器获取待分发的推送消息,包括:
基于客户端与服务器之间的数据通道接收服务器发送的推送消息;
根据协议命令字判断所述推送消息是否是待分发的推送消息,若协议命令字是预设协议命令字,则判断所述推送消息是待分发的推送消息;若协议命令字不是预设协议命令字,则判断所述推送消息不是待分发的推送消息。
如此,网页进程无需维持与服务器侧的连接,服务器也无需搭建专用服务,这样,不仅节省了服务器侧搭建专用服务或专用平台的成本,避免了因需要搭建专用服务而引起的与传统平台不兼容的问题。
作为另一种实施方式,所述消息管理器获取待分发的推送消息,包括:
接收第一网页进程发送的待分发的推送消息。
在一具体实施方式中,所述消息管理器接收到第一网页进程发送的待分发的推送消息,对所述推送消息进行解析,确定所述推送消息对应的消息类型,向订阅相应消息类型的第二网页进程分发相应消息类型的推送消息;其中,所述第二网页进程是与所述第一网页进程不同的网页进程。
举例来说,网页进程1向消息管理器发送的是类型2的推送消息,那么,消息管理器查询到订阅类型2的网页进程包括网页进程1、网页进程5、网页进程7、网页进程9;那么,消息管理器将向网页进程5、网页进程7、网页进程9同时分发该由网页进程1发送的类型为2的推送消息。
步骤302:对所述待分发的推送消息进行解析,确定所述待分发的推送消息中各个推送消息所属的消息类型。
在一实施方式中,所述对所述待分发的推送消息进行解析,确定所述待分发的推送消息中各个推送消息所属的消息类型,包括:
对所述待分发的推送消息进行解析,确定推送消息的消息名和消息体;
根据推送消息的消息名确定所述待分发的推送消息中各个推送消息所属的消息类型。
这里,消息名用于表征推送消息的消息类型。
这里,消息体用于表征推送消息的实体内容。
步骤303:基于订阅关系查询与所述消息类型相关的网页进程。
举例来说,推送消息的消息类型分为M类,即为类型1、类型2、…,类型M;消息管理器中记录有N种网页进程的订阅关系。其中,所述订阅关系可如表1所示。
表1
从表1可以看出,网络进程1至少订阅了类型1的推送消息、类型M的推送消息;网络进程2至少订阅了类型1的推送消息、类型2的推送消息,网络进程N至少订阅了类型2的推送消息。
在一可选实施方式中,所述基于订阅关系查询与所述消息类型相关的网页进程,包括:
以消息类型为索引,从订阅关系中查询与所述消息类型对应的网页进程。
其中,订阅关系包含有不同消息类型与相应网页进程的映射关系;其中,每一种消息类型可对应一个或多个网页进程。
在一具体实施方式中,所述基于订阅关系查询与所述消息类型相关的网页进程,包括:
以推送消息中的消息头为索引,从订阅关系中查询与所述消息头对应的网页进程标识。
步骤304:根据查询结果统计订阅所述消息类型所对应推送消息的网页进程。
在一实施方式中,根据查询结果统计订阅所述消息类型所对应推送消息的网页进程,包括:
根据查询结果建立不同消息类型对应的网页进程集合。
需要说明的是,当订阅关系是消息类型与网页进程以一一对应的形式存储时,或以网页进程为主键存储与该网页进程对应的消息类型的存储形式时,通过上述实施方式统计订阅所述消息类型所对应推送消息的网页进程。
举例来说,订阅关系是消息类型与网页进程以一一对应的形式存储。例如,第一条订阅关系为:类型1与网页进程1相对应;第二条订阅关系为:类型2与网页进程1相对应;第三条订阅关系为:类型N与网页进程1相对应;第四条订阅关系为:类型2与网页进程2相对应;第五条订阅关系为:类型2与网页进程2相对应,等等。这样,当确定消息类型为类型2时,查找到第二条订阅关系、第四条订阅关系,从而统计出订阅类型2的网页进程包括网页进程1、网页进程2。
举例来说,以网页进程为主键存储与该网页进程对应的消息类型的订阅关系,图4示出了订阅关系的一种存储形式,从图4可以看出,网页进程1订阅了类型1、类型2、类型N;网页进程2订阅了类型2、类型3、类型4。这样,当确定消息类型为类型2时,统计出订阅类型2的网页进程包括网页进程1、网页进程2。
在另一实施方式中,根据查询结果统计订阅所述消息类型所对应推送消息的网页进程,包括:
判断所述待分发的消息是否为由服务器发送的推送消息;
如果是,查询相应消息类型所对应的网页进程集合,将与相应消息类型对应的网页进程集合中的所有网页进程,确定为待分发所述消息类型所对应推送消息的网页进程;
如果否,若所述待分发的消息是由第一网页进程发送的推送消息,则查询相应消息类型所对应的网页进程集合,判断所述与相应消息类型对应的网页进程集合中的所有网页进程,是否含有第一网页进程;如果有,将与相应消息类型对应的网页进程集合中的所有网页进程,去除第一网页进程之后的其他网页进程,确定为待分发所述消息类型所对应推送消息的网页进程。
需要说明的是,订阅关系是消息类型与网页进程以一对多的形式存储时,通过上述实施方式统计订阅所述消息类型所对应推送消息的网页进程。
举例来说,消息类型与网页进程以一对多的形式存储的订阅关系,图5示出了订阅关系的另一种存储形式,从图5可以看出,订阅了类型1的网页进程包括网页进程1、网页进程5、网页进程7;订阅了类型2的网页进程包括网页进程1、网页进程2;订阅了类型N的网页进程包括网页进程1、网页进程9、网页进程11。这样,当确定消息类型为类型2时,根据存储关系直接统计出订阅类型2的网页进程包括网页进程1、网页进程2。
步骤305:分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。
在一实施方式中,所述分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息,包括:
消息管理器向订阅相应消息类型的网页进程,透传相应消息类型的推送消息的消息体。
如此,网页进程无需对服务器侧发送的推送消息进行解析,而是由消息管理器预先解析出推送消息的消息头与消息体;网页进程可直接获取推送消息的具体内容。
在一实施例中,所述方法还包括:
消息管理器接收网页进程发送的订阅请求;
消息管理器基于所述订阅请求获取所述订阅请求所涉及的网页进程标识、以及请求订阅的推送消息的消息类型标识;
消息管理器建立所述网页进程标识与所述消息类型标识的订阅关系。
如此,消息管理器能够根据网页进程的请求及时对订阅关系进行更新,如能网页进程发送的订阅请求添加与该网页进程相关的订阅关系,从而使得在接收到新的推送消息时,能够根据最新的订阅关系去分发推送消息。
在一可选实施方式中,所述接收网页进程发送的订阅请求,包括:
消息管理器接收网页进程通过调用订阅接口发送的订阅请求;
其中,所述第一接口是由客户端中的网页组件通过注册响应函数的方式,向网页进程提供订阅接口调用功能。
这里,网页组件可内嵌于客户端中。
在一实施例中,所述方法还包括:
消息管理器接收网页进程发送的订取消订阅请求;
消息管理器确定所述取消订阅请求所涉及的请求取消订的阅推送消息的消息类型标识以及网页标识;
消息管理器从已建立的订阅关系中,删除所述网页标识与所述消息类型标识的订阅关系。
如此,消息管理器能够根据网页进程的请求及时对订阅关系进行更新,如能根据网页发送的取消订阅请求,从与该网页进程相关的订阅关系中删除该网页进程请求删除的消息类型,从而使得在接收到新的推送消息时,能够根据最新的订阅关系去分发推送消息。
在一可选实施方式中,所述接收网页进程发送的订取消订阅请求,包括:
接收网页进程通过调用取消订阅接口发送的取消订阅请求;
其中,所述取消订阅接口是由客户端中的网页组件通过注册响应函数的方式,向网页进程提供取消订阅接口调用功能。
这里,通过调用不同的接口发送订阅请求和取消订阅请求,更有助于消息管理器识别网页进程发送的请求。
图6示出了一种通过客户端与服务器之间的数据通道接收服务器传输的推送消息的数据传输框图,如图6所示,该流程主要包括:首先,服务器将需要推送的数据以推送消息的形式,通过传统平台传输至客户端与传统平台之间的数据传输通道,然后,客户端中的消息管理器对该数据通道中的推送消息进行按照Push4Web协议解析;确定所述推送消息中的消息名和消息体,然后,将分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。
如图6,消息管理器复用了客户端与服务器之间的数据通道,并不用单独自行搭建通道,也不用轮询从服务器侧查询推送消息。同时,服务器无需搭建专用的与网页进程进行通信的专用平台,不仅节省了服务器侧搭建专用服务或专用平台的成本,避免了因需要搭建专用服务而引起的与传统平台不兼容的问题。
Web和客户端的通信包括两个过程,即Web向客户端发送消息和客户端向Web发送消息。
其中,Web向客户端发送消息:客户端中的Web组件通过注册响应函数的方式,给Web提供接口调用的能力。Web页面通过调用这些接口来告诉客户端该订阅或者取消订阅哪种类型的Push4Web消息。
其中,客户端向Web发送消息:客户端通过执行JS代码的方式,将Push4Web的协议数据透传给Web页面。
这样,多个Web页面可以同时接收推送消息,也不用各个Web页面维持与服务器的连接,只需要向客户端订阅推送消息即可。由于Client-Server的数据通道本身具有及时,稳定,性能高的特性,因而该Web-Server的Push通道也具有以上特点。从而也能提升Web接收推送消息的稳定性。
采用本发明实施例所述技术方案,终端获取待分发的推送消息;对所述待分发的推送消息进行解析,确定所述待分发的推送消息中各个推送消息所属的消息类型;基于订阅关系查询与所述消息类型相关的网页进程;根据查询结果统计订阅所述消息类型所对应推送消息的网页进程;分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。可见,网页进程无需定时向服务器请求推送消息,终端只需要依据网页进程的订阅关系,即可向网页进程发送该网页进程订阅的消息类型的推送消息,在终端侧维护订阅关系简单且易实现。同时,网页进程无需维持与服务器侧的连接,服务器也无需搭建专用服务,只需网页进程保持与终端客户端的通信,在能够与终端客户端相互调用的情况下,即可实现推送消息的收发,这样,不仅节省了服务器侧搭建专用服务或专用平台的成本,避免了因需要搭建专用服务而引起的与传统平台不兼容的问题;还提升了Web接收推送消息的稳定性。
图7示出了消息管理器根据第一网页进程的请求情况处理推送消息的一种流程示意图,如图7所示,该流程包括:
步骤701:第一网页进程向消息管理器发送订阅请求;
在一实施方式中,消息管理器接收到第一网页进程发送的订阅请求后,根据基于所述订阅请求获取所述订阅请求所涉及的网页进程标识、以及请求订阅的推送消息的消息类型标识;消息管理器建立所述网页进程标识与所述消息类型标识的订阅关系。
步骤702:第一网页进程向消息管理器发送取消订阅请求;
在一实施方式中,消息管理器接收到第一网页进程发送的取消订阅请求后,根据基于所述取消订阅请求,获取所述取消订阅请求所涉及的网页进程标识、以及取消订阅的推送消息的消息类型标识;消息管理器从已建立的订阅关系中,删除所述网页标识与所述消息类型标识的订阅关系。
如此,消息管理器能够很好地基于订阅请求和取消订阅请求维护订阅关系,进而根据订阅关系对接收到的推送消息进行分发。
步骤703:消息管理器从数据通道接收服务器发送的推送消息,然后执行步骤704;
这里,所述数据通道是指客户端与服务器之间的数据通道。
步骤704:消息管理器对所述推送消息进行解析,确定所述推送消息的消息类型,然后执行步骤705;
步骤705:消息管理器判断第一网页进程是否订阅所述消息类型的推送消息,如果是,执行步骤706;如果否,执行步骤707;
步骤706:消息管理器向第一网页进程发送所述推送消息;
也就是说,若第一网页进程只执行了步骤701,未执行步骤702,则消息管理器记录有第一网页进程已订阅所述消息类型的推送消息,则向第一网页进程发送所述推送消息。
步骤707:消息管理器不向第一网页进程发送所述推送消息。
也就是说,若第一网页进程执行了步骤701,但在步骤705前执行了步骤702,或在步骤705执行判断的过程中执行了步骤702,则消息管理器未记录有第一网页进程已订阅所述消息类型的推送消息,则不向第一网页进程发送所述推送消息。
本实施例中,消息管理器主要负责消息管理,消息订阅与消息分发。
其中,消息管理:Client提供一个全局的消息管理器,所有的Push4Web消息都将在这里进行处理。消息管理器也维护了每个Web页面所订阅的Push名,在某种Push4Web消息正确解析后,消息管理器便会将该消息分发到所有订阅了该Push名的Web页中。
其中,消息订阅:Client向Web提供了注册和反注册订阅的接口。Web页面中通过JS调用来告诉Client需要订阅某种Push名的消息,Client接收到订阅请求后,将该订阅关系交给消息管理器进行全局维护。同理,Client接收到取消订阅的请求后,也会在消息管理器中删除该订阅关系。这里,所述反注册是指取消订阅。
其中,消息分发:订阅了某种Push名的Web都会收到该Push名的数据。该过程有消息管理器进行筛选和分发控制。
如此,本实施所述技术方案,提供了一种简便易行的Web接收服务器发送的推送消息的方案,维护简单;提升了Web接收服务器发送的推送消息的稳定性,提高了用户体验。
图8示出了消息管理器根据第一网页进程的请求情况处理推送消息的另一种流程示意图,如图8所示,该流程包括:
步骤801:第二网页进程向消息管理器发送订阅请求;
在一实施方式中,消息管理器接收到第二网页进程发送的订阅请求后,根据基于所述订阅请求获取所述订阅请求所涉及的网页进程标识、以及请求订阅的推送消息的消息类型标识;消息管理器建立所述网页进程标识与所述消息类型标识的订阅关系。
步骤802:第二网页进程向消息管理器发送取消订阅请求;
在一实施方式中,消息管理器接收到第二网页进程发送的取消订阅请求后,根据基于所述取消订阅请求,获取所述取消订阅请求所涉及的网页进程标识、以及取消订阅的推送消息的消息类型标识;消息管理器从已建立的订阅关系中,删除所述网页标识与所述消息类型标识的订阅关系。
如此,消息管理器能够很好地维护订阅关系,进而根据订阅关系对接收到的推送消息进行分发。
步骤803:消息管理器接收第一网页进程发送的推送消息,然后执行步骤804;
步骤804:消息管理器对所述推送消息进行解析,确定所述推送消息的消息类型,然后执行步骤805;
步骤805:消息管理器判断第二网页进程是否订阅所述消息类型的推送消息,如果是,执行步骤806;如果否,执行步骤807;
步骤806:消息管理器向第二网页进程发送所述推送消息;
也就是说,若第二网页进程只执行了步骤801,未执行步骤802,则消息管理器记录有第二网页进程已订阅所述消息类型的推送消息,则向第二网页进程发送所述推送消息。
步骤807:消息管理器不向第二网页进程发送所述推送消息。
也就是说,若第二网页进程执行了步骤801,在步骤805前执行了步骤802,或在步骤805执行判断的过程中执行了步骤802,则消息管理器未记录有第二网页进程已订阅所述消息类型的推送消息,则不向第二网页进程发送所述推送消息。
本实施例中,消息管理器负责由网页进程发送的推送消息的消息管理、消息订阅与消息分发。
其中,消息管理:Client提供一个全局的消息管理器,维护了每个Web页面所订阅的Push名,在某种Push4Web消息正确解析后,消息管理器便会将该消息分发到所有订阅了该Push名的Web页中。
其中,消息订阅:Client向Web提供了注册和反注册订阅的接口。Web页面中通过JS调用来告诉Client需要订阅某种Push名的消息,Client接收到订阅请求后,将该订阅关系交给消息管理器进行全局维护。同理,Client接收到取消订阅的请求后,也会在消息管理器中删除该订阅关系。
其中,消息分发:订阅了某种Push名的Web都会收到该Push名的数据。该过程有消息管理器进行筛选和分发控制。
本实施所述技术方案,提供了一种简便易行的Web接收其他网页进程发送推送消息的方案,维护简单;提升了Web接收其他网页进程发送推送消息的稳定性,提高了用户体验。
本发明实施例提供了一种推送消息处理装置,如图9所示,所述装置包括:
获取单元91,用于获取待分发的推送消息;
确定单元92,用于对所述待分发的推送消息进行解析,确定所述待分发的推送消息中各个推送消息所属的消息类型;
查询单元93,用于基于订阅关系查询与所述消息类型相关的网页进程;
统计单元94,用于根据查询结果统计订阅所述消息类型所对应推送消息的网页进程;
分发单元95,用于分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。
在一可选实施方式中,所述获取单元91,还用于:
基于客户端与服务器之间的数据通道接收服务器发送的推送消息;
根据协议命令字判断所述推送消息是否是待分发的推送消息。
在另一可选实施方式中,所述获取单元91,还用于:
接收第一网页进程发送的待分发的推送消息;
相应地,所述分发单元95,还用于:
向订阅相应消息类型的第二网页进程分发相应消息类型的推送消息;其中,所述第二网页进程是与所述第一网页进程不同的网页进程。
在一实施方式中,所述确定单元92,还用于:
对所述待分发的推送消息进行解析,确定推送消息的消息名和消息体;
根据推送消息的消息名确定所述待分发的推送消息中各个推送消息所属的消息类型。
在一实施方式中,所述分发单元95,还用于:
向订阅相应消息类型的网页进程,透传相应消息类型的推送消息的消息体。
在一实施例中,所述装置还包括:
第一维护单元96,用于接收网页进程发送的订阅请求;基于所述订阅请求获取所述订阅请求所涉及的网页进程标识、以及请求订阅的推送消息的消息类型标识;建立所述网页进程标识与所述消息类型标识的订阅关系。
可选地,所述第一维护单元96,还用于:
接收网页进程通过调用订阅接口发送的订阅请求;
其中,所述第一接口是由客户端中的网页组件通过注册响应函数的方式,向网页进程提供订阅接口调用功能。
在一实施例中,所述装置还包括:
第二维护单元97,用于接收网页进程发送的订取消订阅请求;确定所述取消订阅请求所涉及的请求取消订的阅推送消息的消息类型标识以及网页标识;从已建立的订阅关系中,删除所述网页标识与所述消息类型标识的订阅关系。
可选地,所述第二维护单元97,还用于:
接收网页进程通过调用取消订阅接口发送的取消订阅请求;
其中,所述取消订阅接口是由客户端中的网页组件通过注册响应函数的方式,向网页进程提供取消订阅接口调用功能。
本领域技术人员应当理解,本实施例的推送消息处理装置中各处理单元的功能,可参照前述推送消息处理方法的相关描述而理解。
实际应用中,上述获取单元91、确定单元92、查询单元93、统计单元94、分发单元95、第一维护单元96、第二维护单元97;的具体结构均可对应于处理器或服务器。所述处理器具体的结构可以为中央处理器(CPU,Central Processing Unit)、微处理器(MCU,MicroController Unit)、数字信号处理器(DSP,Digital Signal Processing)或可编程逻辑器件(PLC,Programmable Logic Controller)等具有处理功能的电子元器件或电子元器件的集合。其中,所述处理器包括可执行代码,所述可执行代码存储在存储介质中,所述处理器可以通过总线等通信接口与所述存储介质中相连,在执行具体的各单元的对应功能时,从所述存储介质中读取并运行所述可执行代码。所述存储介质用于存储所述可执行代码的部分优选为非瞬间存储介质。
图10示例性示出了推送消息处理装置的一个可选的硬件结构示意图,包括处理器11、输入/输出接口13(例如显示屏、触摸屏、扬声器),存储介质14以及网络接口12,组件可以经系统总线15连接通信。相应地,服务器10的存储介质14中存储有用于执行本发明实施例提供的推送消息处理方法的可执行指令。
其中,所述存储介质14可以是移动存储装置、随机存取存储器(RAM,RandomAccess Memory)、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。优选地,所述存储介质14可为非易失性存储介质。
其中,处理器11可以是CPU、MCU、DSP、PLC,还可以是处理电路,例如,专用集成电路(ASIC,Application Specific Integrated Circuits)。
具体地,所述处理器11通过所述系统总线15从所述存储介质14中读取并执行推送消息处理方法的可执行指令,可执行如下步骤:
获取待分发的推送消息;
对所述待分发的推送消息进行解析,确定所述待分发的推送消息中各个推送消息所属的消息类型;
基于订阅关系查询与所述消息类型相关的网页进程;
根据查询结果统计订阅所述消息类型所对应推送消息的网页进程;
分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。
本实施例所述的推送消息处理装置,网页进程无需定时向服务器请求推送消息,网页进程无需维持与服务器侧的连接,服务器也无需搭建专用服务,只需网页进程保持与终端客户端的通信,在能够与终端客户端相互调用的情况下,即可实现推送消息的收发,这样,不仅节省了服务器侧搭建专用服务或专用平台的成本,避免了因需要搭建专用服务而引起的与传统平台不兼容的问题;还提升了Web接收推送消息的稳定性。
图11给出了推送消息处理系统的一种交互示意图,如图11所示,包括终端以及服务器;所述终端包括消息管理器以及多个网页进程;其中,
终端的客户端与服务器之间建立有数据传输通道,用于传输推送消息;
多个网页进程,用于向消息管理器发送订阅请求或取消订阅请求,以使消息管理器基于所述订阅请求或所述取消订阅请求维护订阅关系;
消息管理器,用于基于客户端与服务器之间的数据通道接收服务器发送的推送消息;对所述待分发的推送消息进行解析,确定所述待分发的推送消息中各个推送消息所属的消息类型;基于订阅关系查询与所述消息类型相关的网页进程;根据查询结果统计订阅所述消息类型所对应推送消息的网页进程;分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。
从图11可以看出,网页进程无需定时向服务器请求推送消息,网页进程无需维持与服务器侧的连接,服务器也无需搭建专用服务,只需网页进程保持与终端客户端的通信,在能够与终端客户端相互调用的情况下,即可实现推送消息的收发,这样,不仅节省了服务器侧搭建专用服务或专用平台的成本,避免了因需要搭建专用服务而引起的与传统平台不兼容的问题;还提升了Web接收推送消息的稳定性。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种推送消息处理方法,其特征在于,所述方法包括:
基于客户端与服务器之间的数据通道接收服务器发送的推送消息;当协议命令字是预设协议命令字时,将接收的所述推送消息确定为待分发的推送消息;
对所述待分发的推送消息进行解析,确定所述推送消息的消息名;根据所述推送消息的消息名确定所述待分发的推送消息中各个推送消息所属的消息类型;
基于订阅关系查询与所述消息类型相关的网页进程;
根据查询结果统计订阅所述消息类型所对应推送消息的网页进程;
分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。
2.根据权利要求1所述的方法,其特征在于,所述分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息,包括:
向订阅相应消息类型的第二网页进程分发相应消息类型的推送消息;其中,所述第二网页进程是与第一网页进程不同的网页进程。
3.根据权利要求1所述的方法,其特征在于,所述分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息,包括:
向订阅相应消息类型的网页进程,透传相应消息类型的推送消息的消息体。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述网页进程发送的订阅请求;
基于所述订阅请求获取所述订阅请求所涉及的网页进程标识、以及请求订阅的推送消息的消息类型标识;
建立所述网页进程标识与所述消息类型标识的订阅关系。
5.根据权利要求4所述的方法,其特征在于,所述接收所述网页进程发送的订阅请求,包括:
接收所述网页进程通过调用订阅接口发送的订阅请求;
其中,所述订阅接口是由客户端中的网页组件通过注册响应函数的方式,向所述网页进程提供所述订阅接口调用功能。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述网页进程发送的取消订阅请求;
确定所述取消订阅请求所涉及的请求取消订阅的推送消息的消息类型标识以及网页标识;
从已建立的订阅关系中,删除所述网页标识与所述消息类型标识的订阅关系。
7.根据权利要求6所述的方法,其特征在于,所述接收所述网页进程发送的取消订阅请求,包括:
接收所述网页进程通过调用取消订阅接口发送的取消订阅请求;
其中,所述取消订阅接口是由客户端中的网页组件通过注册响应函数的方式,向所述网页进程提供所述取消订阅接口调用功能。
8.一种推送消息处理装置,其特征在于,所述装置包括:
获取单元,用于基于客户端与服务器之间的数据通道接收服务器发送的推送消息;当协议命令字是预设协议命令字时,将接收的所述推送消息确定为待分发的推送消息;
确定单元,用于对所述待分发的推送消息进行解析,确定所述推送消息的消息名;根据所述推送消息的消息名确定所述待分发的推送消息中各个推送消息所属的消息类型;
查询单元,用于基于订阅关系查询与所述消息类型相关的网页进程;
统计单元,用于根据查询结果统计订阅所述消息类型所对应推送消息的网页进程;
分发单元,用于分别向订阅相应消息类型的网页进程分发相应消息类型的推送消息。
9.根据权利要求8所述的装置,其特征在于,所述分发单元,还用于:
向订阅相应消息类型的第二网页进程分发相应消息类型的推送消息;其中,所述第二网页进程是与第一网页进程不同的网页进程。
10.根据权利要求8所述的装置,其特征在于,所述分发单元,还用于:
向订阅相应消息类型的网页进程,透传相应消息类型的推送消息的消息体。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一维护单元,用于接收所述网页进程发送的订阅请求;基于所述订阅请求获取所述订阅请求所涉及的网页进程标识、以及请求订阅的推送消息的消息类型标识;建立所述网页进程标识与所述消息类型标识的订阅关系。
12.根据权利要求11所述的装置,其特征在于,所述第一维护单元,还用于:
接收所述网页进程通过调用订阅接口发送的订阅请求;
其中,所述订阅接口是由客户端中的网页组件通过注册响应函数的方式,向所述网页进程提供所述订阅接口调用功能。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二维护单元,用于接收所述网页进程发送的取消订阅请求;确定所述取消订阅请求所涉及的请求取消订阅的推送消息的消息类型标识以及网页标识;从已建立的订阅关系中,删除所述网页标识与所述消息类型标识的订阅关系。
14.根据权利要求13所述的装置,其特征在于,所述第二维护单元,还用于:
接收所述网页进程通过调用取消订阅接口发送的取消订阅请求;
其中,所述取消订阅接口是由客户端中的网页组件通过注册响应函数的方式,向所述网页进程提供所述取消订阅接口调用功能。
15.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的推送消息处理方法。
16.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至7任一项所述的推送消息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611160008.XA CN108228625B (zh) | 2016-12-15 | 2016-12-15 | 一种推送消息处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611160008.XA CN108228625B (zh) | 2016-12-15 | 2016-12-15 | 一种推送消息处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228625A CN108228625A (zh) | 2018-06-29 |
CN108228625B true CN108228625B (zh) | 2022-02-11 |
Family
ID=62650491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611160008.XA Active CN108228625B (zh) | 2016-12-15 | 2016-12-15 | 一种推送消息处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228625B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109308202A (zh) * | 2018-09-13 | 2019-02-05 | 武汉斗鱼网络科技有限公司 | 一种链接弹幕的方法及移动终端 |
CN109698838A (zh) * | 2019-02-01 | 2019-04-30 | 智慧盈通(北京)工业技术有限公司 | 一种终端接入单元 |
CN112468502B (zh) * | 2020-11-27 | 2022-07-01 | 杭州梦视网络科技有限公司 | 一种基于Websocket协议的嵌入式设备远程实验方法 |
CN114553949A (zh) * | 2022-02-15 | 2022-05-27 | 北京京东乾石科技有限公司 | 一种页面消息的推送方法和装置 |
CN114938388B (zh) * | 2022-07-22 | 2022-11-11 | 浙江中控技术股份有限公司 | 分布式数据的传输方法、装置、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103997539A (zh) * | 2014-06-06 | 2014-08-20 | 北京航空航天大学 | 基于web服务的雷达运行状态采集分发系统及其方法 |
CN104301436A (zh) * | 2014-11-04 | 2015-01-21 | 北京奇虎科技有限公司 | 待显示内容推送、订阅、更新方法及其相应的装置 |
CN104767775A (zh) * | 2014-01-06 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 网页应用消息推送方法及系统 |
CN105357286A (zh) * | 2015-10-20 | 2016-02-24 | 中国电子科技集团公司第二十八研究所 | 一种基于Web的实时消息定向推送方法 |
CN106210099A (zh) * | 2016-07-18 | 2016-12-07 | 珠海格力电器股份有限公司 | 数据处理系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100093324A1 (en) * | 2008-10-15 | 2010-04-15 | Sony Ericsson Mobile Communications Ab | Subscription Based Content Discovery |
US9906954B2 (en) * | 2014-10-20 | 2018-02-27 | Payfone, Inc. | Identity authentication |
-
2016
- 2016-12-15 CN CN201611160008.XA patent/CN108228625B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767775A (zh) * | 2014-01-06 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 网页应用消息推送方法及系统 |
CN103997539A (zh) * | 2014-06-06 | 2014-08-20 | 北京航空航天大学 | 基于web服务的雷达运行状态采集分发系统及其方法 |
CN104301436A (zh) * | 2014-11-04 | 2015-01-21 | 北京奇虎科技有限公司 | 待显示内容推送、订阅、更新方法及其相应的装置 |
CN105357286A (zh) * | 2015-10-20 | 2016-02-24 | 中国电子科技集团公司第二十八研究所 | 一种基于Web的实时消息定向推送方法 |
CN106210099A (zh) * | 2016-07-18 | 2016-12-07 | 珠海格力电器股份有限公司 | 数据处理系统及方法 |
Non-Patent Citations (3)
Title |
---|
Design and Implementation of Push Notification System Based on the MQTT Protocol;Konglong Tang 等;《International Conference on Information Science and Computer Applications (ISCA 2013)》;20131231;116-119 * |
基于ECA的信息发布/订阅机制研究;刘新刚 等;《计算机工程与设计》;20070531;第28卷(第9期);1985-1988 * |
基于MQTT协议的消息推送服务器;任亨 等;《计算机系统应用》;20141231;第23卷(第3期);77-82 * |
Also Published As
Publication number | Publication date |
---|---|
CN108228625A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228625B (zh) | 一种推送消息处理方法及装置 | |
US7761522B2 (en) | System and method for providing asynchronous notifications using synchronous data sources | |
CN109547511B (zh) | 一种web消息实时推送方法、服务器、客户端及系统 | |
CN105451087A (zh) | 弹幕信息的推送方法、终端、历史数据服务器及系统 | |
CN112738548B (zh) | 一种流媒体调度方法、装置、设备及存储介质 | |
CN110995566A (zh) | 一种消息数据推送方法、系统及装置 | |
CN111314433B (zh) | 消息传输方法、装置及电子设备 | |
CN110297944B (zh) | 分布式xml数据处理方法及系统 | |
CN110620699B (zh) | 消息到达率确定方法、装置、设备和计算机可读存储介质 | |
CN109257335B (zh) | 保持回源链路的方法、回源方法、相关装置及存储介质 | |
CN111541555A (zh) | 群聊优化方法及相关产品 | |
CN106899605B (zh) | 基于stomp协议的通信方法和装置 | |
CN103814580B (zh) | 提供交互服务的方法以及交互服务网络中的服务器 | |
CN112491951B (zh) | 对等网络中的请求处理方法、服务器及存储介质 | |
CN113726801A (zh) | 应用于服务端的ab实验方法、装置、设备及介质 | |
CN102025730B (zh) | 基于http协议的数据传输装置及其实现方法 | |
CN114510299A (zh) | 处理人工智能业务的方法、装置以及存储介质 | |
CN109862094B (zh) | 一种基于流计算的水务设备数据共享方法及装置 | |
CN108259576B (zh) | 一种软硬件实时信息传输系统和方法 | |
CN114153698B (zh) | 显示监控方法、装置、电子设备和可读存储介质 | |
WO2016062097A1 (zh) | 一种基于iptv系统的信息处理方法及装置 | |
CN115883639A (zh) | 一种web实时消息推送方法及装置、设备、存储介质 | |
CN114422591A (zh) | 点对点通信方法、数据通信系统、计算机设备、存储介质 | |
CN110049348B (zh) | 一种视频解析方法、系统及视频解析服务器 | |
CN114050986A (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 |