一种消息推送方法、装置及设备与流程

文档序号:15152071发布日期:2018-08-10 21:14阅读:147来源:国知局

本申请涉及互联网领域,具体涉及一种消息推送方法、装置及设备。



背景技术:

众所周知,消息推送业务是银行业务系统的核心之一,近年来,随着移动互联网技术的快速发展,人们可以利用手机、平板电脑等不同类型的终端搭载各银行的客户端,实现与银行服务端的信息交互,例如实现转账、查询等功能,也便于银行服务端向客户端进行消息推送。

目前,银行业内使用的服务端向客户端进行消息推送的方法是由客户端通过http协议定时轮询服务端请求信息,且每次请求时,客户端与服务端之间的通信连接都是一次性的,由于http协议只能实现单向的通信,所以,在现有的消息推送方法中,只能由客户端主动发起请求,而服务器端不能主动推送信息,这就导致了在实际应用中,服务端需要一直不断的接收大量客户端轮询发送的请求,增加了服务端的负载,而且在这些轮询请求中,大致会有90%为空请求,即由于服务端暂时没有消息需要推送而不做任何回应的请求,因此,这种消息推送的方式不仅推送的效率低,而且对于服务端来说,负载也比较高,且无法第一时间将消息主动推送至客户端,这已经完全满足不了当前消息推送的发展需求。

因此,如何利用更先进的技术,形成高效、低负载的消息推送方式,以便于服务端可以主动将消息推送至客户端已成为亟待解决的问题。



技术实现要素:

为解决上述问题,本申请提供了一种消息推送方法、装置及设备,具体技术方案如下:

第一方面,本申请提供了一种消息推送方法,所述方法应用于消息推送平台,所述方法包括:

接收任一待推送消息,所述待推送消息携带消息目标标识;

基于与所述消息目标标识对应的终端建立的双向通信长连接,将所述待推送消息推送至所述终端;其中,所述双向通信长连接是基于websocket协议建立的连接。

在一种可选的实现方式中,所述基于websocket协议建立的连接包括所述终端基于websocket协议发起的双向通信长连接。

在一种可选的实现方式中,所述待推送消息来自于任一客户端或任一服务端。

在一种可选的实现方式中,所述消息目标标识包括所述终端的唯一识别信息。

在一种可选的实现方式中,所述基于与所述消息目标标识对应的终端建立的双向通信长连接,将所述待推送消息推送至所述终端之后,还包括:

接收所述终端返回的推送结果信息,所述推送结果信息为所述待推送消息推送成功的信息或所述待推送消息推送失败的信息;

若所述推送结果信息为所述待推送消息推送失败的信息,则重新推送所述待推送消息至所述终端。

第二方面,本申请提供了一种消息推送装置,所述装置应用于消息推送平台,所述装置包括:

第一接收单元,用于接收任一待推送消息,所述待推送消息携带消息目标标识;

第一推送单元,用于基于与所述消息目标标识对应的终端建立的双向通信长连接,将所述待推送消息推送至所述终端;其中,所述双向通信长连接是基于websocket协议建立的连接。

在一种可选的实现方式中,所述基于websocket协议建立的连接包括所述终端基于websocket协议发起的双向通信长连接。

在一种可选的实现方式中,所述待推送消息来自于任一客户端或任一服务端。

在一种可选的实现方式中,所述消息目标标识包括所述终端的唯一识别信息。

在一种可选的实现方式中,所述装置还包括:

第二接收单元,用于接收所述终端返回的推送结果信息,所述推送结果信息为所述待推送消息推送成功的信息或所述待推送消息推送失败的信息;

第二推送单元,用于若所述推送结果信息为所述待推送消息推送失败的信息,则重新推送所述待推送消息至所述终端。

第三方面,本申请提供了一种消息推送设备,所述设备包括存储器和处理器,

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令,执行上述第一方面提供的任一项所述的消息推送方法。

在本申请提供的消息推送方法中,消息推送平台首先接收任一待推送消息,该待推送消息携带消息目标标识;接着,基于与消息目标标识对应的终端建立的双向通信长连接,将待推送消息推送至终端;其中,双向通信长连接是基于websocket协议建立的连接。可见,本申请利用消息推送平台基于websocket协议与终端建立的双向通信长连接,使得服务端可以主动推送消息给终端,提高了消息推送效率的同时,也降低了服务端的负载,解决了现有消息推送方式存在的低效、高负载的问题。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的示例性应用场景的框架示意图;

图2为本申请实施例提供的一种消息推送方法的流程图;

图3为本申请实施例提供的消息推送平台所在系统的结构示意图;

图4为本申请实施例提供的websocket的实现原理示意图;

图5为本申请实施例提供的实现客户端与客户端之间消息推送的示意图;

图6为本申请实施例提供的实现服务端与客户端之间消息推送的示意图;

图7为本申请实施例提供一种消息推送装置的结构示意图;

图8为本申请实施例提供一种消息推送设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了便于理解本申请提供的技术方案,下面先对本申请在实际中的应用场景进行介绍。

参见图1,其示出了本申请实施例的一示例性应用场景的框架示意图,如图1所示,本申请提供的消息推送方法可以应用于包括客户端101、消息推送平台102和服务端103的应用场景中;其中,客户端101是指能够与消息推送平台102建立连接,并为客户提供服务的程序,如各手机银行app、浏览器等,客户端101可以搭载在终端中,如可以搭载在智能手机、平板电脑、膝上型个人计算机、桌面型个人计算机、小型计算机、中型计算机、大型计算机等终端中;消息推送平台102是本申请专门搭建的用于实现消息推送的平台设备,可以是能够分别与客户端101以及服务端103进行通信,并将消息推送至客户端101的服务器设备,在实际硬件部署时,消息推送平台102可以是独立的服务器设备,也可采用集群服务器来实现;服务端103是指能够为客户端提供信息与计算服务的设备,可以包括管理服务器集群,业务服务器集群,公共服务器集群,其他集群等,并且服务端103可以为一个客户端提供服务,也可以同时为多个客户端提供服务。

下面以客户端101为搭载在终端上的某手机银行app为例,对本申请的实际应用过程进行说明,在实际应用中,终端上的客户端101首先与消息推送平台102进行连接,以便消息推送平台102可以将待推送消息推送至客户端101,例如推送投资理财业务通知以及系统公告等,其中,待推送消息携带有消息目标标识,当消息推送平台102接收到任一携带消息目标标识的待推送消息后,例如接收到业务服务器集群发送的积分兑换这一待推送消息后,将基于与待推送消息携带的消息目标标识对应的终端建立的双向通信长连接,将待推送消息推送至终端上的客户端101;其中,双向通信长连接是基于websocket协议建立的连接。这样,可利用消息推送平台基于websocket协议与终端建立的双向通信长连接,实现服务端可以主动将消息推送至客户端的功能,提高了消息推送效率的同时,也降低了服务端的负载。

基于以上应用场景,本申请实施例提供了一种消息推送方法,以下将结合附图对该方法进行详细说明。

参见图2,其示出了本申请实施例提供的一种消息推送方法的流程图,如图2所示,该方法包括:

步骤201:接收任一待推送消息,该待推送消息携带消息目标标识。

在实际应用中,各银行根据自身业务发展需求,或者根据其他业务管理需求等,常常需要向对应的银行客户端推送各种消息,例如推送账户通知或金融行情通知等消息,并且这些待推送消息中携带了消息目标标识。

其中,待推送消息可以是由客户端发送给消息推送平台的,也可以是由服务端发送给消息推送平台的,进而可以再通过消息推送平台将待推送消息推送到相应的终端,即实现了客户端向客户端进行消息推送以及服务端主动向客户端进行消息推送;消息目标标识指的是待推送消息将会被推送到的目标终端的标识,该标识可以唯一标识终端。

在本申请一些可能的实现方式中,消息目标标识包括终端的唯一识别信息,其中,唯一识别信息指的是用来体现终端设备唯一性的信息,例如可以是终端设备内置的sim对应的唯一产品序列号sn(serialnumber)或mac(mediaaccesscontrol)信息,再或者也可以是终端设备安装客户端时的广告标识符(identifierforidentifier,idfa)、互联网协议地址(internetprotocol,ip)、用户代理(useragent)等。

为了实现服务端可以主动将待推送消息推送至客户端,本申请基于websocket协议搭建了专门用于消息推送的消息推送平台,使其成为客户端与服务端之间消息传输的中心节点,如图3所示,其示出了本申请实施例提供的消息推送平台所在系统的结构示意图,其中,消息推送平台102可以是独立的服务器设备,也可采用集群服务器来实现,消息推送平台102与各类型终端设备(如pc终端,手机,平板电脑,智慧自助终端stm等)上的客户端之间基于websocket协议建立了双向的通信长连接,向各个类型终端上的客户端推送消息,解决了目前服务端针对具有不同操作系统的客户端,需要进行不同的信息推送方式而引起的系统耦合性差的问题。同时,服务端(如管理服务器集群,业务服务器集群,公共服务器集群,其他集群等)也可以基于http协议与消息推送平台进行信息交互。

在接收到任一待推送消息后,将继续执行步骤202。

步骤202:基于与消息目标标识对应的终端建立的双向通信长连接,将待推送消息推送至终端;其中,所述双向通信长连接是基于websocket协议建立的连接。

在本实施例中,通过步骤201,消息推送平台接收到服务端发送的待推送消息后,进一步可以基于与消息目标标识对应的终端建立的双向通信长连接,将待推送消息推送至终端,如图3所示,服务端可以包括业务服务器群、管理服务器群以及其他服务器群,客户端可以位于手机、平板电脑、智慧自助终端stm等终端设备上。

在进行消息推送之前,消息推送平台与终端需要预先基于websocket协议建立双向的通信长连接,以便于消息推送平台与终端均可以主动向对方发送消息。其中,websocket协议是html5提供的基于tcp的一种新的网络协议,能够实现浏览器与服务器全双工(full-duplex)通信,即允许服务器主动发送信息给客户端,因此,基于websocket协议,在消息推送平台与终端之间建立双向通信长连接后,可以依靠websocket技术实现客户端和服务端之间的双向实时通信。

参见图4,其示出本申请实施例提供的websocket的实现原理示意图,如图4所示,在实现websocket连接过程中,首先需要通过浏览器发出websocket连接请求,然后服务器在接收到连接请求后,发出回应,这个过程通常称为“握手”。在websocketapi,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道,两者之间就直接可以进行数据互相传送,即实现了双工通信。

可以理解的是,websocket不仅可以实现由服务器主动向客户端推送消息的功能,不需要依赖于来自客户端的请求,增加了服务器的主动性和灵活性;而且也由于websocket依赖的是tcp协议,因此,在连接建立后,传输数据量比依赖于http的传输数据量要小,提高了数据传输的效率。

在本申请一些可能的实现方式中,基于websocket协议建立的连接包括终端基于websocket协议发起的双向通信长连接。

实际应用中,基于websocket协议建立的连接是由终端基于websocket协议发起的双向通信长连接,并且是在http协议的基础上完成的与消息推送平台的握手,比如,具体的握手过程如下:

首先,终端上的客户端可以向消息推送平台发送如下请求:

get/chathttp/1.1

host:server.example.com

upgrade:websocket

connection:upgrade

sec-websocket-key:x3jjhmbdl1ezlkh9gbhxdw==

sec-websocket-protocol:chat,superchat

sec-websocket-version:13

origin:http://ccb.com

其中,upgrade:websocket以及connection:upgrade是websocket的核心内容,用于通知消息推送平台发起的是请求是websocket协议,以与传统的http协议相区分;sec-websocket-key表示的是一个base64encode的值,由浏览器随机生成的,用来询问消息推送平台是否支持websocket;sec_websocket-protocol表示的是一个用户定义的字符串,用来区分同统一资源定位符(uniformresourcelocator,简称url)下,不同的服务所需要的协议;sec-websocket-version表示的是所使用的协议版本(websocketdraft);origin表示的是消息推送平台地址。

接着,消息推送平台在接收到客户端的请求后,会进行处理返回类似如下字段:

ttp/1.1101switchingprotocols

upgrade:websocket

connection:upgrade

sec-websocket-accept:hsmrc0smlyukagmm5oppg2hagwk=

sec-websocket-protocol:chat

这里开始就是http最后负责的区域了,通知客户端已经成功切换协议。

其中,upgrade:websocket以及connection:upgrade仍然是websocket的核心内容,依然是固定的,消息推送平台返回该值以用于通知客户端即将升级的是websocket协议,而不是其他协议;sec-websocket-accept表示的是经过消息推送平台确认,并且加密过后的sec-websocket-key;sec-websocket-protocol表示的是最终使用的协议。

至此,http已经执行完毕,接下来消息推送平台与客户端就是完全按照websocket协议进行双向通信了。

如图3所示,在进行消息推送之前,消息推送平台与客户端端可以按照上述连接过程,预先基于websocket协议建立二者之间的双向通信长连接,以便于消息推送平台与终端均可以主动向对方发送消息,进一步可以实现服务端与终端之间主动向对方发送消息,其中,服务端可以通过http协议将携带消息目标标识的待推送消息发送至消息推送平台,进而可以由消息推送平台基于已建立的双向通信长连接,主动将该待推送消息推送至消息目标标识对应的终端上安装的客户端。

需要说明的是,服务端中的各服务器群不仅可以通过http协议将待推送消息发送至消息推送平台,也可以采用类似上述连接方式,在服务器群与消息推送平台之间建立基于websocket协议的双向通信长连接,进而各服务器群可以通过该连接,将携带消息目标标识的待推送消息发送至消息推送平台。本申请对此不进行限制。

在本申请一些可能的实现方式中,本申请的待推送消息可以来自于任一客户端或任一服务端。

在实际应用中,一种可选的实施方式是,本申请的待推送消息可以来自于任一客户端,进而可以实现客户端与客户端之间的消息推送。

举例说明:参见图5,其示出了本申请实施例提供的实现客户端与客户端之间消息推送的示意图,以智慧自助终端stm执行一笔需要大堂经理对操作者进行身份审核的业务为例,其中,智慧自助终端stm指的是在银行内给客户自行使用,自助完成所需功能的类似设备。在stm执行一笔需要大堂经理对操作者进行身份审核的业务之前,stm上的客户端和大堂经理平板电脑上的客户端均需要预先通过websocket连接将相应请求发送到消息推送平台,以便可以基于websocket协议建立与消息推送平台之间的双向通信长连接,进而stm上的客户端可以基于该连接向消息推送平台发送携带有大堂经理平板电脑的唯一识别信息(如mac信息等)的需要大堂经理对操作者进行身份审核的待推送消息,进而消息推送平台在接收到该待推送消息后,将基于与大堂经理平板电脑建立的双向通信长连接,将该待推送消息推送至大堂经理平板电脑上的客户端,从而实现了stm上的客户端与大堂经理平板电脑上的客户端之间的消息推送,以便于大堂经理平板电脑客户端在对推送消息内容进行处理之后会向业务服务器集群发送交易请求以获取当前身份审核的具体业务数据,进而业务服务器集群在对业务数据进行分析处理之后,可以通知大堂经理到相应stm对操作者进行身份审核及授权。

相应的,另一种可选的实施方式是,本申请的待推送消息可以来自于任一服务端,进而可以实现服务端与客户端之间的消息推送,。

举例说明:参见图6,其示出了本申请实施例提供的实现服务端与客户端之间消息推送的示意图,以服务端(具体为业务服务器集群)后台检查到有vip客户到达,通知大堂经理为其提供服务为例,同理,在该示例执行之前,大堂经理平板电脑上的客户端需要预先通过websocket协议,建立与消息推送平台之间的双向通信长连接。业务服务器集群可以向消息推送平台发送携带有大堂经理平板电脑的唯一识别信息(如产品序列号sn等)的需要大堂经理对已到达vip客户提供服务的待推送消息,进而消息推送平台在接收到该待推送消息后,将基于与大堂经理平板电脑建立的双向通信长连接,将该待推送消息推送至大堂经理平板电脑上的客户端,从而实现了业务服务器集群向大堂经理平板电脑上的客户端的消息推送,以便于大堂经理平板电脑上的客户端在对推送消息内容进行处理之后会向业务集群发送交易请求以获取当前vip的具体数据,进而业务服务器集群在对业务数据进行分析处理之后,可以通知大堂经理到相应柜面对vip客户提供咨询服务和产品。

在本申请一些可能的实现方式中,通过步骤202,将待推送消息推送至终端后,本申请还可以包括:

接收终端返回的推送结果信息,其中,推送结果信息为待推送消息推送成功的信息或待推送消息推送失败的信息;

若推送结果信息为待推送消息推送失败的信息,则重新推送待推送消息至终端。

在实际应用中,当通过步骤202,将待推送消息推送至终端后,进一步还可以接收终端返回的推送结果信息,其中,推送结果信息为待推送消息推送成功信息或待推送消息推送失败信息。

一种可选的实现方式是,当消息推送平台完成消息推送后,终端将判断消息推送请求是否符合终端自身预设的条件,例如是否符合指定的数据格式等,如果符合,则向信息推送平台返回待推送消息推送成功的信息,如果不符合,或是出现其他问题导致消息推送不成功,都将向信息推送平台返回待推送消息推送失败的信息,进一步的,当消息推送平台接收到终端返回的待推送消息推送失败的信息后,重新将待推送消息推送至相应的终端。

这样,在本申请提供的消息推送方法中,消息推送平台首先接收任一待推送消息,该待推送消息携带消息目标标识;接着,基于与消息目标标识对应的终端建立的双向通信长连接,将待推送消息推送至终端;其中,双向通信长连接是基于websocket协议建立的连接。可见,本申请利用消息推送平台基于websocket协议与终端建立的双向通信长连接,使得服务端可以主动推送消息给终端,提高了消息推送效率的同时,也降低了服务端的负载,解决了现有消息推送方式存在的低效、高负载的问题。

基于以上消息推送方法,本申请还提供了一种消息推送装置,如图7所示,该装置包括:

第一接收单元701,用于接收任一待推送消息,所述待推送消息携带消息目标标识;

第一推送单元702,用于基于与所述消息目标标识对应的终端建立的双向通信长连接,将所述待推送消息推送至所述终端;其中,所述双向通信长连接是基于websocket协议建立的连接。

可选地,所述基于websocket协议建立的连接包括所述终端基于websocket协议发起的双向通信长连接。

可选地,所述待推送消息来自于任一客户端或任一服务端。

可选地,所述消息目标标识包括所述终端的唯一识别信息。

可选地,所述装置还包括:

第二接收单元,用于接收所述终端返回的推送结果信息,所述推送结果信息为所述待推送消息推送成功的信息或所述待推送消息推送失败的信息;

第二推送单元,用于若所述推送结果信息为所述待推送消息推送失败的信息,则重新推送所述待推送消息至所述终端。

这样,在本申请提供的消息推送装置中,消息推送平台首先接收任一待推送消息,该待推送消息携带消息目标标识;接着,基于与消息目标标识对应的终端建立的双向通信长连接,将待推送消息推送至终端;其中,双向通信长连接是基于websocket协议建立的连接。可见,本申请利用消息推送平台基于websocket协议与终端建立的双向通信长连接,使得服务端可以主动推送消息给终端,提高了消息推送效率的同时,也降低了服务端的负载,解决了现有消息推送方式存在的低效、高负载的问题。

相应的,本发明实施例还提供一种消息推送设备,参见图8所示,可以包括:

处理器801、存储器802、输入装置803和输出装置804。排版文档生成设备中的处理器801的数量可以一个或多个,图8中以一个处理器为例。在本发明的一些实施例中,处理器801、存储器802、输入装置803和输出装置804可通过总线或其它方式连接,其中,图8中以通过总线连接为例。

存储器802可用于存储软件程序以及模块,处理器801通过运行存储在存储器802的软件程序以及模块,从而执行消息推送设备的各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置803可用于接收输入的数字或字符信息,以及产生与消息推送设备的用户设置以及功能控制有关的信号输入。

具体在本实施例中,处理器801会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现上述消息推送方法中的各种功能。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请实施例所提供的一种消息推送方法、装置及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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