消息推送方法、系统、设备和存储介质与流程

    专利2022-07-07  145


    本申请实施例涉及计算机技术领域,尤其涉及一种消息推送方法、系统、设备和存储介质。



    背景技术:

    随着移动互联网的飞速发展,消息推送功能在终端设备的应用程序(application,简称app)中越来越重要。消息推送功能对于提高产品活跃度、提升用户粘性起到了重要作用。

    相关技术中,通过终端设备与app服务器之间的长链接向app推送消息,当app的进程关掉后,终端设备与app服务器之间的长链接会断开,导致app收不到推送消息。因此,如何提高推送消息的可靠性是本领域技术人员亟需解决的技术问题。



    技术实现要素:

    本申请实施例提供一种消息推送方法、系统、设备和存储介质,以提高推送消息的可靠性。

    第一方面,本申请实施例提供一种消息推送方法,包括:

    第一服务器获取终端设备的目标应用程序app的待推送消息;

    若确定所述第一服务器与终端设备之间的第一长链接处于连接状态,则所述第一服务器通过所述第一长链接向所述终端设备发送所述待推送消息;

    若确定所述第一长链接处于非连接状态,则所述第一服务器向第二服务器发送所述待推送消息,以使所述第二服务器向所述终端设备发送所述待推送消息。

    第二方面,本申请实施例提供一种消息推送方法,包括:

    若所述终端设备与所述第一服务器之间的第一长链接处于连接状态,所述终端设备通过所述第一长链接获取第一服务器发送的目标应用程序app的待推送消息;

    若所述第一长链接处于非连接状态,所述终端设备通过第二服务器与所述终端设备之间的第二长链接获取第二服务器发送的目标app的待推送消息。

    第三方面,本申请实施例提供一种消息推送装置,包括:

    获取模块,用于获取终端设备的目标应用程序app的待推送消息;

    发送模块,用于若确定所述第一服务器与终端设备之间的第一长链接处于连接状态,则通过所述第一长链接向所述终端设备发送所述待推送消息;

    所述发送模块,还用于若确定所述第一长链接处于非连接状态,则所述第一服务器向第二服务器发送所述待推送消息,以使所述第二服务器向所述终端设备发送所述待推送消息。

    第四方面,本申请实施例提供一种消息推送装置,包括:

    获取模块,用于若所述终端设备与所述第一服务器之间的第一长链接处于连接状态,所述终端设备通过所述第一长链接获取第一服务器发送的目标应用程序app的待推送消息;

    所述获取模块,还用于若所述第一长链接处于非连接状态,所述终端设备通过第二服务器与所述终端设备之间的第二长链接获取第二服务器发送的目标app的待推送消息。

    第五方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法。

    第六方面,本申请实施例提供一种第一服务器,包括:

    处理器;以及

    存储器,用于存储所述处理器的可执行指令;

    其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的方法。

    第七方面,本申请实施例提供一种终端设备,包括:

    处理器;以及

    存储器,用于存储所述处理器的可执行指令;

    其中,所述处理器配置为经由执行所述可执行指令来执行第二方面中任一项所述的方法。

    第八方面,本申请实施例提供一种消息推送系统,包括:

    终端设备、第一服务器和第二服务器;

    其中,所述第一服务器,用于获取终端设备的目标应用程序app的待推送消息;若确定所述第一服务器与终端设备之间的第一长链接处于连接状态,则通过所述第一长链接向所述终端设备发送所述待推送消息;若确定所述第一长链接处于非连接状态,则向第二服务器发送所述待推送消息,以使所述第二服务器向所述终端设备发送所述待推送消息;

    所述终端设备,用于若所述第一长链接处于连接状态,通过所述第一长链接获取所述第一服务器发送的目标app的待推送消息;若所述第一长链接处于非连接状态,通过所述第二服务器与所述终端设备之间的第二长链接获取所述第二服务器发送的目标app的待推送消息。

    本申请实施例提供的消息推送方法、系统、设备和存储介质,在第一服务器与终端设备之间的第一长链接处于连接状态时,通过第一长链接向终端设备发送待推送消息;在第一长链接处于非连接状态时,将待推送消息发送给第二服务器,通过第二服务器发送待推送消息。上述方案中,在第一长链接处于连接状态时,通过第一长链接发送待推送消息,在第一长链接处于非连接状态时,通过第二服务器发送待推送消息,无论第一长链接是否处于连接状态,均能推送消息,因此提高了推送消息的可靠性。

    附图说明

    此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

    图1为本申请实施例提供的系统架构示意图;

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

    图3是本申请一实施例提供的终端设备的界面示意图;

    图4是本申请一实施例提供的消息推送方法的交互流程示意图;

    图5是本申请另一实施例提供的消息推送方法的流程示意图;

    图6是本申请一实施例提供的初始化推送原理示意图;

    图7是本申请一实施例提供的校验厂商推送原理示意图;

    图8是本申请一实施例提供的设备交互示意图;

    图9是本申请又一实施例提供的消息推送方法的流程示意图;

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

    图11是本申请另一实施例提供的消息推送装置的结构示意图;

    图12是本申请实施例提供的第一服务器的结构示意图;

    图13是本申请实施例提供的终端设备的结构示意图;

    图14是本申请实施例提供的第二服务器的结构示意图。

    通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

    具体实施方式

    这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

    本申请的说明书和权利要求书及所述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

    首先,对本申请实施例涉及的部分词汇和应用场景进行介绍。

    长链接是指在一个连接上可以连续发送多个数据包,该长链接通过心跳包维持。

    厂商推送服务,是指终端设备的厂商提供的系统级别的推送服务。无论app的进程是否关闭均能向终端设备推送消息。

    图1为本申请实施例提供的系统架构示意图。如图1所示,本申请实施例的系统架构中可以包括但不限于:终端设备11、第一服务器12和第二服务器。终端设备例如包括:手机、平板电脑、可穿戴设备等用户设备。

    其中,终端设备11与第一服务器12和第二服务器13之间分别可以通过网络连接。第一服务器12和第二服务器13之间可以通过网络连接。

    其中,第一服务器可以是该终端设备中应用程序app对应的服务器,第二服务器可以是该终端设备所属的厂商的服务器。

    相关技术中,通过终端设备与app服务器之间的长链接向app推送消息,当app的进程关掉后,终端设备与app服务器之间的长链接会断开,导致app收不到推送消息。因此,如何提高推送消息的可靠性是本领域技术人员亟需解决的技术问题。

    本申请实施例的方法,在第一服务器与终端设备之间的第一长链接处于连接状态时,通过第一长链接向终端设备发送待推送消息;在第一长链接处于非连接状态时,将待推送消息发送给第二服务器,通过第二服务器发送待推送消息。由于第二服务器为终端设备厂商的服务器,通过厂商推送服务向终端设备发送推送消息,厂商推送服务是终端设备的厂商提供的系统级别的推送服务,无论app的进程是否关闭均能推送消息,即在终端设备与app服务器之间的长链接处于非连接状态时,第二服务器也能向该终端设备推送消息。

    下面以具体的实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

    图2是本申请一实施例提供的消息推送方法的流程示意图。如图2所示,本实施例提供的方法,包括:

    步骤101、第一服务器获取终端设备的目标应用程序app的待推送消息。

    具体的,第一服务器可以是该目标app对应的服务器,第一服务器在收到指示需要向某个终端设备推送消息时,获取该终端设备的目标app的待推送消息。

    例如,目标app是新闻类app,待推送消息例如是根据用户浏览习惯生成的新闻推送消息,目标app是购物类app,待推送消息例如是根据用户购买习惯生成的用于推荐商品的推送消息。

    例如,物联网设备触发报警,生成待推送消息,即报警信息。

    如图3所示,终端设备在收到待推送消息后,在终端设备的界面上显示该待推送消息。

    步骤102、若确定第一服务器与终端设备之间的第一长链接处于连接状态,则第一服务器通过第一长链接向终端设备发送待推送消息。

    具体的,为了推送消息,第一服务器与终端设备之间具有第一长链接,终端设备中该目标app的进程开启时,该第一长链接处于连接状态,若该目标app的进程关闭时,该第一长链接处于非连接状态。

    如图4所示,若确定第一服务器与终端设备的第一长链接处于连接状态时,第一服务器可以通过第一长链接向终端设备发送待推送消息。

    步骤103、若确定第一长链接处于非连接状态,则第一服务器向第二服务器发送待推送消息,以使第二服务器向终端设备发送待推送消息。

    具体的,如图4所示,在第一长链接处于非连接状态时,第一服务器无法通过第一长链接向终端设备发送待推送消息。因此,第一服务器可以向第二服务器发送该待推送消息,通过第二服务器发送给终端设备。

    其中,第二服务器可以是该终端设备所属厂商的服务器,终端设备与该第二服务器之间具有第二长链接,该第二长链接无需该目标app的进程开启,只需要该目标app在该第二服务器中注册即可,即第二长链接建立之后无论app进程是否开启,均处于连接状态。

    例如,当用户使用该目标app时,登录用户账号,对第二长链接进行注册。

    本申请实施例中,第一服务器对同一个终端设备登录的账号维持两种长链接。一种是终端设备与第一服务器之间的第一长链接,一种是终端设备与厂商的第二服务器之间的第二长链接(厂商对应的第二长链接也需要通过第一服务器控制,因为最终推送消息的发起者是第一服务器)。

    第一长链接需要终端设备和app服务器(即第一服务器)进行维持,而厂商推送服务则是通过厂商服务器和终端设备进行维持。当app服务器发现第一长链接和厂商推送服务的第二长链接同时连接成功的时候,可以优先利用第一长链接进行推送。当第一长链接断开的时候,切换成厂商推送服务进行消息推送。

    本实施例的方法,在第一服务器与终端设备之间的第一长链接处于连接状态时,通过第一长链接向终端设备发送待推送消息;在第一长链接处于非连接状态时,将待推送消息发送给第二服务器,通过第二服务器发送待推送消息。上述方案中,在第一长链接处于连接状态时,通过第一长链接发送待推送消息,在第一长链接处于非连接状态时,通过第二服务器发送待推送消息,无论第一长链接是否处于连接状态,均能推送消息,因此提高了推送消息的可靠性。

    在上述实施例的基础上,步骤102之前,还包括:

    确定第一长链接是否处于连接状态。

    在一实施例中,“确定第一长链接是否处于连接状态”可以通过如下方式实现:

    若所述第一服务器在预设时长内接收到所述终端设备发送的心跳包,则所述第一服务器确定所述第一长链接处于连接状态。

    在一实施例中,“确定第一长链接处于非连接状态”可以通过如下方式实现:

    若所述第一服务器接收到所述终端设备发送的连接断开指示消息,则所述第一服务器确定所述第一长链接处于非连接状态;或,

    若所述第一服务器在预设时长内未接收到所述终端设备发送的心跳包,则所述第一服务器确定所述第一长链接处于非连接状态。

    具体的,终端设备登录目标app时,会与app服务器(即第一服务器)建立连接,建立连接后为了维持该长链接,终端设备会定时发送心跳包,若第一服务器在预设时长内接收到终端设备发送的心跳包,则第一服务器确定第一长链接处于连接状态。

    第一服务器在预设时长内未接收到所述终端设备发送的心跳包,则所述第一服务器确定所述第一长链接处于非连接状态。

    或者,在建立连接后,终端设备在进程关闭时,会向第一服务器发送连接断开指示消息,第一服务器在接收到该连接断开指示消息后,确定第一长链接处于非连接状态。

    在一实施例中,如图4所示,该方法还包括:

    所述第一服务器建立所述第一长链接。

    其中,所述第一服务器建立所述第一长链接,具体可以通过如下方式实现:

    所述第一服务器根据所述终端设备发送的第一请求,建立所述第一长链接,并将所述第一长链接的标识发送给所述终端设备。

    具体的,用户在使用目标app并登录账号时,终端设备向第一服务器发送第一请求,用于请求建立终端设备与第一服务器之间的第一长链接。

    第一服务器建立该第一长链接,并分配一个标识,作为该终端设备对应的第一长链接的标识,并发送给终端设备。

    第一服务器在向终端设备推送消息时会携带该第一长链接的标识,终端设备即可确定是哪个app对应的推送消息。

    上述实施方式中,在推送消息之前建立第一长链接,而且在推送消息时需要检测该第一长链接是否处于连接状态,在第一长链接处于连接状态时,通过第一长链接发送待推送消息,在第一长链接处于非连接状态时,通过第二服务器发送待推送消息,无论第一长链接是否处于连接状态,均能推送消息,因此提高了推送消息的可靠性。

    在一实施例中,步骤103可以通过如下方式实现:

    所述第一服务器获取所述终端设备与所述第二服务器之间的第二长链接的标识;

    所述第一服务器向所述第二服务器发送所述待推送消息和所述第二长链接的标识。

    具体的,如图4所示,用户在使用目标app并登录账号时,终端设备向第二服务器发送第二请求,用于请求建立终端设备与第二服务器之间的第一长链接。第二服务器建立该第二长链接,并分配一个标识,作为该终端设备对应的第二长链接的标识,并发送给终端设备。

    第一服务器从终端设备中获取终端设备与第二服务器之间的第二长链接的标识。第一服务器在通过该第二服务器向终端设备推送消息时,需要告知第二服务器向哪个终端设备推送消息,可以通过告知该终端设备对应的第二长链接的标识实现。

    因此,第一服务器向第二服务器发送待推送消息时携带该第二长链接的标识,从而使得第二服务器通过该第二长链接向终端设备推送消息。

    上述实施方式中,在推送消息之前建立第二长链接,在第一长链接处于连接状态时,通过第一长链接发送待推送消息,在第一长链接处于非连接状态时,通过第二服务器发送待推送消息,无论第一长链接是否处于连接状态,均能推送消息,因此提高了推送消息的可靠性。

    图5是本申请另一实施例提供的消息推送方法的流程示意图。如图5所示,本实施例提供的方法,包括:

    步骤201、若终端设备与第一服务器之间的第一长链接处于连接状态,终端设备通过第一长链接获取第一服务器发送的目标应用程序app的待推送消息。

    步骤202、若第一长链接处于非连接状态,终端设备通过第二服务器与终端设备之间的第二长链接获取第二服务器发送的目标app的待推送消息。

    具体的,当目标app处于运行状态时,终端设备会持续维持和app服务器(即第一服务器)之间的第一长链接。由于第一长链接通过心跳包维持,因此只要app的进程还在,第一长链接将一直处于连接状态。

    当app进程被系统杀死,即进程关闭时,那么终端设备无法继续与app服务器维持该第一长链接,第一长链接会自动断开。服务器端会接收到长链接断开的指示消息。

    由于厂商推送服务器只要app注册即可,不需要app维持对应的长链接。对于app而言,当app进程被杀掉以后,第一长链接无法维持,那么app服务器端会自动切换成厂商的第二服务器的第二长链接进行推送。

    在一实施例中,如图4所示,该方法还包括:

    所述终端设备向所述第一服务器发送第一请求,所述第一请求用于请求建立与所述第一服务器之间的第一长链接;

    所述终端设备获取所述第一服务器返回的所述第一长链接的标识。

    如图6所示,建立终端设备与第一服务器之间的第一长链接,即对第一长链接进行初始化,若失败,则进行重试。

    在一实施例中,该方法还包括:

    若所述目标app重启,则所述终端设备确定所述app是否处于登录状态;

    若是,则重新发送所述第一请求。

    具体的,当目标app被重启,app可以判断当前场景下是否是登录状态,如果是那么再次向第一服务器重建第一长链接,即向第一服务器发送第一请求,用于请求建立该第一长链接。

    上述实施方式中,在目标app重启后,第一长链接处于非连接状态,推送消息时需要重新建立该第一长链接。

    在一实施例中,该方法还包括:

    所述终端设备向所述第二服务器发送第二请求,所述第二请求用于请求建立与所述第一服务器之间的第二长链接;

    所述终端设备获取所述第二服务器返回的第二长链接的标识。

    在一实施例中,步骤“所述终端设备向所述第二服务器发送第二请求”可以通过如下方式实现:

    所述终端设备确定所述终端设备支持的厂商推送服务;

    所述终端设备向所述厂商推送服务对应的第二服务器发送所述第二请求。

    如图6所示,终端设备确定支持的厂商推送服务,并向该厂商推送服务对应的第二服务器发送该第二请求,建立终端设备与第二服务器之间的第二长链接,对第二长链接进行初始化,例如对厂商1推送服务进行初始化,若失败,则进行重试。

    在一实施例中,“所述终端设备确定所述终端设备支持的厂商推送服务”具体可以通过如下方式实现:

    所述终端设备确定所述终端设备的系统类型以及所述终端设备所属的厂商;

    所述终端设备根据所述终端设备的系统类型以及所述终端设备所属的厂商,确定所述终端设备支持的厂商推送服务。

    具体的,如图6所示,在对厂商推送服务进行初始化之前,需要校验厂商推送,即确定该终端设备支持的厂商推送服务,如图7所示,首先确定该终端设备的系统类型,若系统类型为ios系统,则可以确定该终端设备支持的厂商推送服务为苹果推送通知服务(applepushnotificationservice,apns)。

    若系统类型为安卓系统,则确定该终端设备的系统为国内版或海外版,若是海外版,则确定该终端设备支持的厂商推送服务为(firebasecloudmessaging,fcm)推送。

    若是国内版,则确定该终端设备所属的厂商,从而确定该终端设备支持的厂商推送服务。

    本实施例的方法,在第一服务器与终端设备之间的第一长链接处于连接状态时,通过第一长链接向终端设备发送待推送消息;在第一长链接处于非连接状态时,将待推送消息发送给第二服务器,通过第二服务器发送待推送消息。由于第二服务器为终端设备厂商的服务器,通过厂商推送服务向终端设备发送推送消息,厂商推送服务是终端设备的厂商提供的系统级别的推送服务,无论app的进程是否关闭均能推送消息,即在终端设备与app服务器之间的长链接处于非连接状态时,第二服务器也能向该终端设备推送消息,提高了推送消息的可靠性。

    在一实施例中,终端设备包括:应用程序app和sdk,sdk中包括接口,结合图6、图7、图8所示,介绍建立长链接的过程以及消息推送过程:

    对于终端设备与第一服务器的第一长链接来说:

    终端设备调用sdk中的接口向第一服务器发起注册请求,请求建立终端设备与第一服务器的第一长链接,建立成功后,向sdk中的接口返回注册完成指示信息,若失败,则进行重试。

    对于终端设备与第二服务器的第二长链接来说:

    终端设备调用sdk中的接口确定所属的目标厂商,向该目标厂商的第二服务器发起注册请求,请求建立终端设备与第二服务器的第二长链接,第二服务器建立成功后,向sdk中的接口返回注册完成指示信息,并返回该第二长链接的标识,sdk将该第二长链接的标识传给app,终端设备将该第二长链接的标识发送给第一服务器;若未找到所属的目标厂商的第二服务器则结束。

    消息推送过程:

    报警触发器触发报警,生成待推送消息,若第一长链接处于连接状态,第一服务器将该待推送消息发送给sdk,sdk将该待推送消息发送给终端设备;若第一长链接处于非连接状态,第一服务器将该待推送消息发送给第二服务器,第二服务器将该待推送消息发送给sdk,sdk将该待推送消息发送给终端设备。

    图9是本申请又一实施例提供的消息推送方法的流程示意图。如图9所示,本实施例提供的方法,包括:

    步骤301、第二服务器接收第一服务器发送的目标app的待推送消息,待推送消息为第一服务器在第一服务器与终端设备之间的第一长链接处于非连接状态时发送的;

    步骤302、第二服务器通过第二长链接向终端设备发送待推送消息。

    在一实施例中,所述第二服务器接收所述终端设备发送的第二请求,用于请求建立所述第二服务器与终端设备之间的第二长链接;

    所述第二服务器将第二长链接的标识发送给终端设备。

    本实施例的方法,与前述第一服务器侧和终端设备侧的方法,其实现原理和技术效果类似,此处不再赘述。

    图10为本申请一实施例提供的消息推送装置的结构示意图,如图10所示,本实施例的消息推送装置,包括:

    获取模块110,用于获取终端设备的目标应用程序app的待推送消息;

    发送模块111,用于若确定所述第一服务器与终端设备之间的第一长链接处于连接状态,则通过所述第一长链接向所述终端设备发送所述待推送消息;

    所述发送模块111,还用于若确定所述第一长链接处于非连接状态,则所述第一服务器向第二服务器发送所述待推送消息,以使所述第二服务器向所述终端设备发送所述待推送消息。

    本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

    图11为本申请另一实施例提供的消息推送装置的结构示意图,如图11所示,本实施例的消息推送装置,包括:

    获取模块120,用于若所述终端设备与所述第一服务器之间的第一长链接处于连接状态,所述终端设备通过所述第一长链接获取第一服务器发送的目标应用程序app的待推送消息;

    所述获取模块120,还用于若所述第一长链接处于非连接状态,所述终端设备通过第二服务器与所述终端设备之间的第二长链接获取第二服务器发送的目标app的待推送消息。

    本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

    本申请实施例还提供一种消息推送系统,包括:

    终端设备、第一服务器和第二服务器;

    其中,所述第一服务器,用于获取终端设备的目标应用程序app的待推送消息;若确定所述第一服务器与终端设备之间的第一长链接处于连接状态,则通过所述第一长链接向所述终端设备发送所述待推送消息;若确定所述第一长链接处于非连接状态,则向第二服务器发送所述待推送消息,以使所述第二服务器向所述终端设备发送所述待推送消息;

    所述终端设备,用于若所述第一长链接处于连接状态,通过所述第一长链接获取所述第一服务器发送的目标app的待推送消息;若所述第一长链接处于非连接状态,通过所述第二服务器与所述终端设备之间的第二长链接获取所述第二服务器发送的目标app的待推送消息。

    本实施例的系统,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

    图12为本申请实施例提供的第一服务器的结构示意图,如图12所示,该第一服务器包括:

    处理器210,以及,用于存储处理器210的可执行指令的存储器211。

    可选的,还可以包括:通信接口212,用于实现与其他设备的通信。

    上述部件可以通过一条或多条总线进行通信。

    其中,处理器210配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。

    图13为本申请实施例提供的终端设备的结构示意图,如图13所示,该终端设备包括:

    处理器220,以及,用于存储处理器220的可执行指令的存储器221。

    可选的,还可以包括:通信接口222,用于实现与其他设备的通信。

    可选的,还可以包括:显示器,用于显示接收到的目标app的推送消息。

    上述部件可以通过一条或多条总线进行通信。

    其中,处理器220配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。

    图14为本申请实施例提供的第二服务器的结构示意图,如图14所示,该第二服务器包括:

    处理器230,以及,用于存储处理器230的可执行指令的存储器231。

    可选的,还可以包括:通信接口232,用于实现与其他设备的通信。

    上述部件可以通过一条或多条总线进行通信。

    其中,处理器230配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。

    本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,其实现原理和技术效果类似,此处不再赘述。

    本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。

    应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。


    技术特征:

    1.一种消息推送方法,其特征在于,包括:

    第一服务器获取终端设备的目标应用程序app的待推送消息;

    若确定所述第一服务器与终端设备之间的第一长链接处于连接状态,则所述第一服务器通过所述第一长链接向所述终端设备发送所述待推送消息;

    若确定所述第一长链接处于非连接状态,则所述第一服务器向第二服务器发送所述待推送消息,以使所述第二服务器向所述终端设备发送所述待推送消息。

    2.根据权利要求1所述的方法,其特征在于,所述确定所述第一服务器与终端设备之间的第一长链接处于连接状态,包括:

    若所述第一服务器在预设时长内接收到所述终端设备发送的心跳包,则所述第一服务器确定所述第一长链接处于连接状态。

    3.根据权利要求1或2所述的方法,其特征在于,所述确定所述第一长链接处于非连接状态,包括:

    若所述第一服务器接收到所述终端设备发送的连接断开指示消息,则所述第一服务器确定所述第一长链接处于非连接状态;或,

    若所述第一服务器在预设时长内未接收到所述终端设备发送的心跳包,则所述第一服务器确定所述第一长链接处于非连接状态。

    4.根据权利要求1或2所述的方法,其特征在于,所述第一服务器向第二服务器发送所述待推送消息,包括:

    所述第一服务器获取所述终端设备与所述第二服务器之间的第二长链接的标识;

    所述第一服务器向所述第二服务器发送所述待推送消息和所述第二长链接的标识。

    5.根据权利要求4所述的方法,其特征在于,所述第一服务器获取所述终端设备与所述第二服务器之间的第二长链接的标识之前,还包括:

    所述第一服务器接收所述终端设备发送的所述第二长链接的标识。

    6.根据权利要求3所述的方法,其特征在于,所述第一服务器接收到所述终端设备发送的连接断开指示消息之前,还包括:

    所述第一服务器建立所述第一长链接。

    7.根据权利要求6所述的方法,其特征在于,所述第一服务器建立所述第一长链接,包括:

    所述第一服务器根据所述终端设备发送的第一请求,建立所述第一长链接,并将所述第一长链接的标识发送给所述终端设备。

    8.一种消息推送方法,其特征在于,包括:

    若终端设备与第一服务器之间的第一长链接处于连接状态,所述终端设备通过所述第一长链接获取第一服务器发送的目标应用程序app的待推送消息;

    若所述第一长链接处于非连接状态,所述终端设备通过第二服务器与所述终端设备之间的第二长链接获取第二服务器发送的目标app的待推送消息。

    9.根据权利要求8所述的方法,其特征在于,所述通过所述第一长链接获取第一服务器向目标应用程序推送的消息之前,还包括:

    所述终端设备向所述第一服务器发送第一请求,所述第一请求用于请求建立与所述第一服务器之间的第一长链接;

    所述终端设备获取所述第一服务器返回的所述第一长链接的标识。

    10.根据权利要求8或9所述的方法,其特征在于,所述通过第二服务器与所述终端设备之间的第二长链接获取第二服务器向目标app推送的消息之前,还包括:

    所述终端设备向所述第二服务器发送第二请求,所述第二请求用于请求建立与所述第一服务器之间的第二长链接;

    所述终端设备获取所述第二服务器返回的第二长链接的标识。

    11.根据权利要求10所述的方法,其特征在于,所述终端设备向所述第二服务器发送第二请求,包括:

    所述终端设备确定所述终端设备支持的厂商推送服务;

    所述终端设备向所述厂商推送服务对应的第二服务器发送所述第二请求。

    12.根据权利要求11所述的方法,其特征在于,所述终端设备确定所述终端设备支持的厂商推送服务,包括:

    所述终端设备确定所述终端设备的系统类型以及所述终端设备所属的厂商;

    所述终端设备根据所述终端设备的系统类型以及所述终端设备所属的厂商,确定所述终端设备支持的厂商推送服务。

    13.根据权利要求10所述的方法,其特征在于,所述终端设备获取所述第二服务器返回的第二长链接的标识之后,还包括:

    所述终端设备将所述第二长链接的发送给所述第一服务器。

    14.根据权利要求9所述的方法,其特征在于,还包括:

    若所述目标app重启,则所述终端设备确定所述app是否处于登录状态;

    若是,则重新发送所述第一请求。

    15.一种消息推送系统,其特征在于,包括:

    终端设备、第一服务器和第二服务器;

    其中,所述第一服务器,用于获取终端设备的目标应用程序app的待推送消息;若确定所述第一服务器与终端设备之间的第一长链接处于连接状态,则通过所述第一长链接向所述终端设备发送所述待推送消息;若确定所述第一长链接处于非连接状态,则向第二服务器发送所述待推送消息,以使所述第二服务器向所述终端设备发送所述待推送消息;

    所述终端设备,用于若所述第一长链接处于连接状态,通过所述第一长链接获取所述第一服务器发送的目标app的待推送消息;若所述第一长链接处于非连接状态,通过所述第二服务器与所述终端设备之间的第二长链接获取所述第二服务器发送的目标app的待推送消息。

    16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7、8-14任一项所述的方法。

    17.一种第一服务器,其特征在于,包括:

    处理器;以及

    存储器,用于存储所述处理器的可执行指令;

    其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的方法。

    18.一种终端设备,其特征在于,包括:

    处理器;以及

    存储器,用于存储所述处理器的可执行指令;

    其中,所述处理器配置为经由执行所述可执行指令来执行权利要求8-14任一项所述的方法。

    技术总结
    本申请实施例提供一种消息推送方法、系统、设备和存储介质。该方法包括:第一服务器获取终端设备的目标应用程序APP的待推送消息;若确定第一服务器与终端设备之间的第一长链接处于连接状态,则第一服务器通过第一长链接向终端设备发送待推送消息;若确定第一长链接处于未连接状态,则第一服务器向第二服务器发送待推送消息。本申请实施例第二服务器为终端设备厂商的服务器,通过厂商推送服务向终端设备发送推送消息,厂商推送服务是终端设备的厂商提供的系统级别的推送服务,在终端设备与APP服务器之间的长链接处于非连接状态时,第二服务器也能向该终端设备推送消息,提高了消息推送的可靠性。

    技术研发人员:尤广来
    受保护的技术使用者:杭州萤石软件有限公司
    技术研发日:2020.11.24
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-7414.html

    最新回复(0)