一种推送消息传输方法、装置、存储介质及电子设备与流程

文档序号:19059689发布日期:2019-11-06 01:39阅读:149来源:国知局
一种推送消息传输方法、装置、存储介质及电子设备与流程

本申请涉及计算机技术领域,尤其涉及一种推送消息传输方法、装置、存储介质及电子设备。



背景技术:

随着互联网技术的发展,一种新兴教育模式-远程授课越来越受到人们的欢迎。

在远程授课时,学生和老师一般通过在线教育系统获取对方的上课数据,从而实现上课功能。当学生或老师有一方因为网络故障而导致上课中断时,在线教育系统会通过服务器向网络正常的一方推送另一方网络故障的通知消息。

在服务器向用户终端推送消息前,需要建立两者之间的通信连接。目前,用户终端采用轮询的方式与服务器建立通信连接,即用户终端基于轮询周期定时向服务器发送连接请求,以建立两者之间的连接服务,并通过该连接服务完成消息推送后再释放该连接服务,而在下次需要推送消息时再重新建立两者之间的连接服务。在此过程中,用户终端只能定时向服务器发送连接请求,但学生与老师因网络故障中断上课的时间未到达该定时时刻时,则需要等待定时时刻的到来,从而增大了服务器向用户终端发送推送消息的时延。



技术实现要素:

本申请实施例提供了一种推送消息传输方法、装置、存储介质及电子设备,可以减小服务器向用户终端发送推送消息的时延。所述技术方案如下:

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

接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息;

采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备;

将所述推送消息采用长连接服务传输至所述第二用户终端。

第二方面,本申请实施例提供了一种推送消息传输装置,所述装置包括:

消息接收模块,用于接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息;

连接建立模块,用于采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备;

消息传输模块,用于将所述推送消息采用长连接服务传输至所述第二用户终端。

第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。

第四方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。

本申请一些实施例提供的技术方案带来的有益效果至少包括:

在本申请一个或多个实施例中,长连接服务器接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息,采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备,将所述推送消息采用长连接服务传输至所述第二用户终端。通过建立第二用户终端和长连接服务器的长连接服务,可以通过该长连接服务直接将故障通知消息发送给第二用户终端,减小了服务器向用户终端发送推送消息的时延。

附图说明

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

图1是本申请实施例提供的一种推送消息传输的场景架构示意图;

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

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

图4a是本申请实施例提供的一种推送消息传输涉及的场景图;

图4b是本申请实施例提供的另一种推送消息传输涉及的场景图;

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

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

图7是本申请实施例提供的一种连接建立模块的结构示意图;

图8是本申请实施例提供的一种服务器的结构示意图。

具体实施方式

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

在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

下面结合具体的实施例对本申请进行详细说明。

请参见图1,为本申请实施例提供的一种推送消息传输系统的架构示意图。如图1所示,所述推送消息传输系统可以包括业务服务器100、域名服务器110、长连接服务器120和用户终端130。

所述业务服务器100、域名服务器110、长连接服务器120可以是单独的服务器设备,例如:机架式、刀片、塔式、或者机柜式的服务器设备,或采用工作站、大型计算机等具备较强计算能力硬件设备;也可以是采用多个服务器组成的服务器集群,所述服务集群中的各服务器可以是以对称方式组成的,其中每台服务器在业务链路中功能等价、地位等价,各服务器均可单独对外提供服务,所述单独提供服务可以理解为无需另外的服务器的辅助。

所述用户终端130可以是具有网络访问功能的终端设备,该终端设备包括但不限于:个人电脑、平板电脑、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中用户终端130可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personaldigitalassistant,pda)、5g网络或未来演进网络中的终端设备等。

在本申请实施例中,所述推送消息传输装置即为长连接服务器120。

当业务服务器100检测到第一用户终端发生网络故障时,经消息传输链路向第二用户终端130发送故障通知消息。

所述消息传输链路是指传输消息数据的数据链路或物理链路,通常消息传输链路包含业务服务器、交换机、网关设备等。在本实施例中,所述消息传输链路可以理解为所述故障通知消息在各节点传输的路径,即由业务服务器100、域名服务器110、长连接服务器120和用户终端130组成的链路。

具体的,当第一用户终端发生网络故障时,所述网络故障可以是网络设备发生故障,可以是人为的误操作导致的网络故障。业务服务器100检测到所述网络故障,所述业务服务器100通过读取并执行“网络故障”的控制逻辑对应的机器可执行指令,业务服务器100通过执行所述指令识别检测到第一用户终端发生网络故障,进而生成所述故障通知消息,经消息传输链路的各节点(域名服务器、长连接服务器等)传输,最终将故障通知消息发送至第二用户终端130。

第二用户终端130基于预设通信架构向域名服务器110发送长连接请求,以使所述域名服务器110在长连接服务器集群中确定一长连接服务器120并建立该长连接服务器120与第二用户终端130的长连接服务。

所述通信架构是指进行数据通信的一种通信结构,通信架构定义了数据网络通信系统的各个方面,包含通信的接口类型、使用的网络协议、实现的数据框架、通信布线的类型等。常用的通信架构可以是tcp/ip架构,netty架构、c/s架构、soa架构等。在本实施例,所述通信架构可以理解为采用基于java开源的netty框架,并配合websocket技术从而实现通信网络中第二用户终端130与长连接服务器120建立长连接服务的通信结构,并实现向所述第二用户终端130推送消息。

所述长连接服务是指一个长连接上可以连续发送多个数据包,能够长期保持连接状态进行数据传输的连接服务,在本实施例中,所述长连接服务可以理解为第二用户终端130与长连接服务器120在完成一次数据传输操作后不立即释放连接,而继续保持连接的过程。

具体的,第二用户终端130基于预设通信架构向域名服务器110发送长连接请求,所述长连接请求携带有所述第二用户终端130的第一地址信息、用户认证信息等,所述用户认证信息可以理解为第二用户终端130的身份验证信息(用户名、密码等),所述第一地址信息可以理解为第二用户终端130的地址信息(ip地址、mac地址、端口号等),所述域名服务器110在接收到所述长连接请求之后,可以是先对所述长连接请求所携带的用户认证信息进行身份认证,在身份认证通过后,从长连接服务器集群中分配一个用于与所述第二客户终端建立连接的长连接服务器120,基于所述长连接请求携带的所述第二用户终端的第一地址信息和所述长连接服务器120的第二地址信息(ip地址、mac地址、端口号等),建立所述第一地址信息与第二地址信息之间的长连接服务,。

长连接服务器120接收消息链路上的故障通知消息之后,采用长连接服向所述第二用户终端130发送心跳包。

当所述长连接服务器120在接收到所述第二用户终端130针对所述心跳包反馈的响应信息未超时时,确定所述长连接服务器120与第二用户终端130之间的长连接服务为连接正常状态,将所述推送消息采用长连接服务传输至所述第二用户终端130。

当所述长连接服务器120在接收到所述第二用户终端130针对所述心跳包反馈的响应信息超时时,确定所述长连接服务器120与第二用户终端130之间的长连接服务为连接异常状态,长连接服务器120将所述推送消息保存至消息数据库中。当检测到所述长连接服务器与120所述第二用户终端130之间的长连接服务恢复连接正常状态时,从所述消息数据库中获取所述推送消息,并采用所述长连接服务传输至所述第二用户终端130。

长连接服务器120接收所述第一用户终端通过所述域名服务器110发送的推送消息,所述推送消息为第一用户终端发生网络故障时生成的故障通知消息,采用预设通信架构建立长连接服务器120与第二用户终端130之间的长连接服务,将所述故障通知消息通过长连接服务传输至所述第二用户终端130,所述第二用户终端130为与所述第一用户终端进行网络通信的终端设备。

在本申请一个或多个实施例中,长连接服务器接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息,采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备,将所述推送消息采用长连接服务传输至所述第二用户终端。通过建立第二用户终端和长连接服务器的长连接服务,可以通过该长连接服务直接将故障通知消息发送给第二用户终端,减小了服务器向用户终端发送推送消息的时延。

在一个实施例中,如图2所示,特提出了一种推送消息传输方法,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的推送消息传输装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。该推送消息传输装置可以是图1所示的长连接服务器。

具体的,该推送消息传输方法包括:

步骤101:接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息。

所述业务服务器在本实施例中可以认为用于检测第一用户终端或第二用户终端与在线教育平台网络状况的服务器,所述第一用户终端可以是连接在线教育平台上的智能终端设备,所述在线教育平台包含用于在线教育的多个设备(网关、路由设备、负载均衡设备、服务器设备等),所述第一用户终端通过在线教育平台与第二用户终端建立网络连接之后,所述第一用户终端和第二用户终端可以实现实时传输在线教育的数据,所述在线教育的数据可以是在线实时视频数据,还可以是在线实时音频数据等,所述第一用户终端或第二用户终端与在线教育平台建立的网络连接,可以是通过无线通信方式,也可以是通过有线通信方式,具体不作限定。

所述网络故障在本实施例中,可以理解为所述第一用户终端与在线教育平台的网络连接故障,所述网络故障的类型可以是在线教育平台部分或全部功能不可用,可以是在线教育平台的实时在线教育的数据出现异常,可以是在线教育平台的网络不通,还可以是使用在线平台的用户误操作等,此处不作具体限定。

可选的,所述用于检测网络故障的业务服务器可以是基于独立部署的方式,所述独立部署可以理解为会在网络连接的通信信道或在线教育平台的多个设备(网关、路由设备、负载均衡设备、服务器设备等)分别设置检测点,用于检测网络故障。

具体的,当第一用户终端与在线教育平台的网络连接由于网络故障被迫中断时,所述独立部署的业务服务器检测到所述第一用户终端的通信连接信道发生网络故障,通过读取并执行“发送故障通知信息”的控制逻辑对应的机器可执行指令,进而生成所述故障通知消息,经消息传输链路的域名服务器进行解析,获得解析之后的长连接服务器的地址,将所述故障通知消息经业务链路传输至所述地址对应的长连接服务器上。

步骤102:采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备。

所述通信架构是指进行数据通信的一种通信结构,通信架构定义了数据网络通信系统的各个方面,包含通信的接口类型、使用的网络协议、实现的数据框架、通信布线的类型等。常用的通信架构可以是tcp/ip架构,netty架构、c/s架构、soa架构等。在本实施例,所述通信架构可以理解为采用基于java开源的netty框架,并配合websocket技术从而实现通信网络中第二用户终端与服务器建立长连接的通信结构,并实现向所述第二用户终端推送消息。

具体的,所述长连接服务器接收第二用户终端通过域名服务器发送的长连接请求,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备,所述长连接请求携带有第二用户终端的设备信息(设备名、地址、设备标识等),所述长连接服务器基于所述长连接请求进行长连接服务的初始化,然后根据所述第二用户终端的设备信息,向第二用户终端发送用于建立长连接服务的指令,第二用户终端接收到所述建立长连接服务指令后,对所述指令进行验证。

具体的,第二客户端通过读取并解析所述建立长连接服务指令的返回值,根据所述返回值判断与预设的返回值是否匹配,所述返回值在本实施例中可以理解为一串代码、字符串、数组等,当所述返回值与预设的返回值匹配时,则所述长连接服务建立成功。当所述返回值与预设的返回值不匹配时,所述第二用户终端可以重新向所述长连接服务器发送长连接请求,采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务。

步骤103:将所述推送消息采用长连接服务传输至所述第二用户终端。

所述长连接服务器接收消息传输链路上的故障通知消息,获取故障通知消息的消息数据,对所述消息进行解析,获得故障通知消息携带的第二用户终端的设备信息(设备名、地址、设备标识等),基于第二用户终端的设备信息与长连接服务器消息分发接口的映射关系,找到长连接服务器与第二用户终端的消息分发接口,所述长连接服务器通过调用底层的所述消息分发接口实现将所述故障通知消息传输至所述第二用户终端。

可选的,当所述长连接的消息分发接口需要推送多个通知消息时,设置所述故障通知消息的推送优先级为最高,所述长连接服务器优先调用所述消息分发接口将所述故障通知消息传输至所述第二用户终端。

在本申请一个或多个实施例中,长连接服务器接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息,采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备,将所述推送消息采用长连接服务传输至所述第二用户终端。通过建立第二用户终端和长连接服务器的长连接服务,可以通过该长连接服务直接将故障通知消息发送给第二用户终端,减小了服务器向用户终端发送推送消息的时延。

请参见图3,图3是本申请提出的一种推送消息传输方法的另一种实施例的流程示意图。具体的:

步骤201:接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息。

具体可参见步骤101,此处不再赘述。

步骤202:接收第二用户终端通过预设通信架构发送的长连接请求,获取所述长连接请求携带的所述第二用户终端的第一地址信息。在长连接服务器集群中确定长连接服务器,获取所述长连接服务器的第二地址信息,建立所述第一地址信息与第二地址信息之间的长连接服务。

所述第一、第二地址信息是指用来定义网络设备(通信设备)、用户终端位置的信息,可以是mac地址、ip地址、物理地址、硬件地址等,在本实施例中所述第一地址信息可以理解为定义第二用户终端位置的信息,所述第二地址可以理解为定义长连接服务器位置的信息。

所述通信架构可以理解为采用基于java开源的netty框架,并配合websocket技术从而实现通信网络中第二用户终端与服务器建立长连接服务的通信结构,并实现向所述第二用户终端推送消息。

具体的,所述长连接请求用于基于预设的通信架构建立第二客户端与长连接服务器的长连接服务,所述长连接请求携带有所述第二用户终端的第一地址信息及建立长连接类型的信息,所述建立长连接的类型在本实施例中,可以理解为建立websocket长连接类型的长连接服务。

可选的,所述域名服务器接收所述长连接请求,获取所述长连接请求携带的长连接类型的信息,所述域名服务器可以是与多个连接类型的服务器集群建立映射关系,所述连接类型包含长连接类型、短连接类型等,同一连接类型连接的包含有多种连接协议的连接,例如基于http1.0/1.1协议的长连接、基于jettycontinuation实现的长连接、基于servlet3实现的长连接、基于websocket协议的长连接等,所述域名服务器基于长连接请求携带的长连接类型的信息,从各服务器集群中确定建立所述长连接类型的长连接服务器集群,在本实施例中可以理解为支持websocket协议的长连接服务器集群。

具体的,所述域名服务器在确定建立所述长连接类型的长连接服务器集群之后,根据预设连接分配规则向所述第二客户端分配一个长连接服务器,获取连接服务器的第二地址信息,将所述长连接请求发送至所述长连接服务器上。

可选的,所述连接分配规则可以是基于连接类型的动态带宽分配算法,可以是基于博弈论的排队网络连接分配算法,可以是基于连接时长预测的时隙分配算法,还可以是基于连接建立优先级的跨层资源分配算法等。

需要说明的是,连接分配规则有多种,可以是上述的一种或几种,此处不作具体限定。

具体的,所述长连接服务器接收第二用户终端通过域名服务器发送的长连接请求,所述长连接服务器基于所述长连接请求进行长连接服务的初始化,然后获取所述长连接请求携带的第二用户设备的第一地址信息(mac地址、ip地址、物理地址、硬件地址等),根据所述第一地址信息,向所述第一地址信息指示的第二用户终端发送用于建立长连接服务的指令,从而建立所述第一地址信息与第二地址信息之间的长连接服务。

步骤203:向所述第二用户终端发送心跳包,响应于所述第二用户终端针对所述心跳包反馈的响应信息未超时,确定所述长连接服务器与第二用户终端之间的长连接服务为连接正常状态,将所述推送消息采用长连接服务传输至所述第二用户终端。

所述心跳包是指在用户终端和服务器间通知对方设备状态的探测数据,所述探测数据可以是自定义的结构体(代码、字符串、命令字等),发送心跳包可以确定当前长连接服务是否正常,服务器通常需要按照一定时间间隔发送心跳包,而接收心跳包的一方则检测是否按时收到心跳包,并以此判断连接是否正常。心跳包通常为很小的探测数据包,通常是在逻辑层发送一个只包含包头的空包来实现。

在本实施例中可以理解为定时发送一个心跳包给所述第二用户终端,第二用户终端收到所述心跳包后返回一个响应信息。

在一种可选的实施方式中,所述第二用户终端具备休眠功能,所述休眠功能可以理解为当检测到第二用户终端与长连接服务器的长连接服务在预设时间内无数据发送,此时长连接服务会自动断开。

可选的,当所述第二用户终端与所述长连接服务器建立长连接服务之后,长连接服务器可以向第二用户终端发送心跳包,来保持在预设时间内所述长连接有数据发送,从而维持第二用户终端与长连接服务器的长连接服务。

具体的,所述长连接服务器向所述第二用户终端发送心跳包检测长连接服务的状态,当所述第二用户终端接收到所述心跳包时,向长连接服务器反馈一个响应信息。

所述长连接服务器接收到第二用户终端反馈的所述响应信息之后,获取响应时间并判断是否超时,当在接收到所述第二用户终端针对所述心跳包反馈的响应信息未超时时,即确定所述长连接服务器与第二用户终端之间的长连接服务为正常状态,然后所述长连接服务器将所述故障通知消息采用长连接服务传输至第二用户终端。

步骤204:响应于所述第二用户终端针对所述心跳包反馈的响应信息超时,确定所述长连接服务器与第二用户终端之间的长连接服务为连接异常状态,将所述推送消息保存至消息数据库中。

所述心跳包反馈的响应信息超时可以理解为所述第二用户终端状态异常没有在预设响应时间内反馈响应信息,所述状态异常可以是所述第二用户终端的负载过大、消息传输通道堵塞等。

具体的,当所述长连接服务器在预设响应时间内未接收到所述第二用户终端反馈的响应消息时,确定所述长连接服务器与第二用户终端之间的长连接服务为连接异常状态,触发所述长连接服务器的推送消息备份机制,通过读取并执行“推送消息备份”的控制逻辑对应的机器可执行指令,将所述故障通知信息备份至数据库中。

步骤205:当检测到所述长连接服务器与所述第二用户终端之间的长连接服务恢复连接正常状态时,从所述消息数据库中获取所述推送消息,并采用所述长连接服务传输至所述第二用户终端。

具体的,所述恢复连接可以理解为第二用户终端的工作状态恢复正常,此时,所述第二用户终端可以向长连接服务器发送长链接恢复请求,所述长连接服务器接收到所述恢复请求之后,获取连接中断前的长连接服务的配置信息,所述配置信息包含消息分发接口、端口号、消息处理线程、消息处理规则等信息,基于所述配置信息建立长连接服务器与第二用户终端的长连接服务。

可选的,所述长连接服务器可以向第二用户终端发送心跳包,所述心跳包用于检测所述长连接服务是否恢复到连接正常状态,所述第二用户终端接收到所述心跳包之后,向所述长连接服务器发送针对所述心跳包反馈的响应信息,当所述长连接服务器在预设时间内接收所述响应信息时,则确定所述长连接服务器与所述第二用户终端之间的长连接服务恢复至连接正常状态。

具体的,当检测到所述长连接服务器与所述第二用户终端之间的长连接服务恢复连接正常状态时,从所述消息数据库中获取所述故障推送消息,并采用所述长连接服务传输至所述第二用户终端。

步骤206:接收所述第一用户终端通过所述域名服务器发送的推送消息,所述推送消息为第一用户终端发生网络故障时生成的故障通知消息,采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备,将所述推送消息通过长连接服务传输至所述第二用户终端。

具体可参见步骤101-步骤103,此处不再赘述。

在一种可行的实施方式中,当第一用户终端发生网络故障时,所述第一用户终端与在线教育平台的网络连接会断开,第一用户终端发送故障通知消息,所述故障通知消息经消息推送链路发送至第二用户终端。

可选的,所述第一用户终端可以基于预设通信架构通过长连接服务器建立与第二用户终端的点对点实时通信。在本实施例中可以理解为基于java开源的netty框架,并配合websocket技术实现通过长连接服务器建立第一用户终端和第二用户终端的点对点实时通信。

可选的,所述第一用户终端向所述域名服务器发送点对点连接请求,所述点对点连接请求在本实施例中,可以理解为用于通过长连接服务器建立第一用户终端和第二用户终端的点对点实时通信。所述域名服务器接收点对点连接请求,在长连接服务器集群中确定长连接服务器,所述长连接服务器用于与第一用户终端、第二用户终端建立点对点通信服务。

在一种可行的实施方式中,所述第一用户终端与第二用户终端的点对点实时通信可以是基于不同的长连接服务器实现的。请参考图4a,图4a中第二用户终端与长连接服务器1建立长连接服务,第一用户终端与长连接服务器2建立长连接服务,长连接服务器1与长连接服务器2建立通信传输通道,从而建立第一用户终端、长连接服务器1、长连接服务器2、第二用户终端的点对点实时通信。第一用户终端可以调用长连接服务器2的长连接服务向第二用户终端发送推送消息,所述推送消息可以是故障通知消息,所述通知消息经长连接服务器1、长连接服务器2发送至第二用户终端,所述第二用户终端在接收到所述推送消息之后,可以向所述第一用户终端发送应答消息。

在一种可行的实施方式中,所述第一用户终端与第二用户终端的点对点实时通信可以是基于同一的长连接服务器实现的。请参考图4b,图4a中第二用户终端与长连接服务器1建立长连接服务,第一用户终端与长连接服务器1建立长连接服务,从而建立第一用户终端、长连接服务器1、第二用户终端的点对点实时通信,所述第一用户终端经长连接服务器1向第二用户终端发送推送消息,所述第二用户终端再接收到所述推送消息之后,可以向第一用户终端发送应答消息。

在本申请一个或多个实施例中,长连接服务器接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息,采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备,将所述推送消息采用长连接服务传输至所述第二用户终端。通过建立第二用户终端和长连接服务器的长连接服务,可以通过该长连接服务直接将故障通知消息发送给第二用户终端,减小了服务器向用户终端发送推送消息的时延。同时,第二用户终端与长连接服务器之间的长连接服务处于持续连接状态,当下次需要发送推送消息时,可以直接发送,而不需要再向长连接服务器请求连接,从而可以减小长连接服务器的负荷。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参见图5,其示出了本申请一个示例性实施例提供的推送消息传输装置的结构示意图。该推送消息传输装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括消息接收模块11、连接建立模块12和消息传输模块13。

消息接收模块11,用于接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息;

连接建立模块12,用于采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备;

消息传输模块13,用于将所述推送消息采用长连接服务传输至所述第二用户终端。

可选的,如图6所示,所述连接建立模块12具体可以包括:

地址获取单元121,用于接收第二用户终端通过预设通信架构发送的长连接请求,获取所述长连接请求携带的所述第二用户终端的第一地址信息;

长连接建立单元122,用于在长连接服务器集群中确定长连接服务器,获取所述长连接服务器的第二地址信息,建立所述第一地址信息与第二地址信息之间的长连接服务。

可选的,如图7所示,所述装置1还包括:

状态确定模块14,向所述第二用户终端发送心跳包,响应于所述第二用户终端针对所述心跳包的反馈信息未超时,确定所述长连接服务器与第二用户终端之间的长连接服务为连接正常状态。

可选的,如图7所示,所述装置1还包括:

消息保存模块15,用于响应于所述第二用户终端针对所述心跳包的反馈信息超时,确定所述长连接服务器与第二用户终端之间的长连接服务为连接异常状态,将所述推送消息保存至消息数据库中。

可选的,如图7所示,所述装置1还包括:

消息重传模块16,用于当检测到所述长连接服务器与所述第二用户终端之间的长连接服务恢复连接正常状态时,从所述消息数据库中获取所述推送消息,并采用所述长连接服务传输至所述第二用户终端。

可选的,所述消息接收模块11,用于接收所述第一用户终端通过所述域名服务器发送的推送消息,所述推送消息为第一用户终端发生网络故障时生成的故障通知消息;

所述连接建立模块12,用于采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备;

所述消息传输模块13,用于将所述推送消息通过长连接服务传输至所述第二用户终端。

需要说明的是,上述实施例提供的推送消息传输装置在执行推送消息传输方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的推送消息传输装置与推送消息传输方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请一个或多个实施例中,长连接服务器接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息,采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备,将所述推送消息采用长连接服务传输至所述第二用户终端。通过建立第二用户终端和长连接服务器的长连接服务,可以通过该长连接服务直接将故障通知消息发送给第二用户终端,减小了服务器向用户终端发送推送消息的时延。同时,第二用户终端与长连接服务器之间的长连接服务处于持续连接状态,当下次需要发送推送消息时,可以直接发送,而不需要再向长连接服务器请求连接,从而可以减小长连接服务器的负荷。

本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图4b所示实施例的方法步骤,具体执行过程可以参见图1-图4b所示实施例的具体说明,在此不进行赘述。

本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的评分生成方法。

请参见图8,为本申请实施例提供了一种服务器的结构示意图。如图8所示,所述服务器1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。

其中,通信总线1002用于实现这些组件之间的连接通信。

其中,用户接口1003可以包括显示屏(display)、摄像头(camera),可选用户接口1003还可以包括标准的有线接口、无线接口。

其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。

其中,存储器1005可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及推送消息传输应用程序。

在图8所示的服务器1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的推送消息传输应用程序,并具体执行以下操作:

接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息;

采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备;

将所述推送消息采用长连接服务传输至所述第二用户终端。

在一个实施例中,所述处理器1001在执行所述采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务时,具体执行以下操作:

接收第二用户终端通过预设通信架构发送的长连接请求,获取所述长连接请求携带的所述第二用户终端的第一地址信息;

在长连接服务器集群中确定长连接服务器,获取所述长连接服务器的第二地址信息,建立所述第一地址信息与第二地址信息之间的长连接服务。

在一个实施例中,所述处理器1001在执行所述采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务之后,还执行以下操作:

向所述第二用户终端发送心跳包,响应于所述第二用户终端针对所述心跳包的反馈信息未超时,确定所述长连接服务器与第二用户终端之间的长连接服务为连接正常状态。

在一个实施例中,所述处理器1001还执行以下操作:

响应于所述第二用户终端针对所述心跳包的反馈信息超时,确定所述长连接服务器与第二用户终端之间的长连接服务为连接异常状态;

将所述推送消息保存至消息数据库中。

在一个实施例中,所述处理器1001在执行所述将所述推送消息保存至消息数据库中之后,还执行以下操作:

当检测到所述长连接服务器与所述第二用户终端之间的长连接服务恢复连接正常状态时,从所述消息数据库中获取所述推送消息,并采用所述长连接服务传输至所述第二用户终端。

在一个实施例中,所述处理器1001还执行以下操作:

接收所述第一用户终端通过所述域名服务器发送的推送消息,所述推送消息为第一用户终端发生网络故障时生成的故障通知消息,采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备,将所述推送消息通过长连接服务传输至所述第二用户终端。

在本申请一个或多个实施例中,长连接服务器接收业务服务器通过域名服务器发送的推送消息,所述推送消息为所述业务服务器在检测到第一用户终端发生网络故障时生成的故障通知消息,采用预设通信架构建立长连接服务器与第二用户终端之间的长连接服务,所述第二用户终端为与所述第一用户终端进行网络通信的终端设备,将所述推送消息采用长连接服务传输至所述第二用户终端。通过建立第二用户终端和长连接服务器的长连接服务,可以通过该长连接服务直接将故障通知消息发送给第二用户终端,减小了服务器向用户终端发送推送消息的时延。同时,第二用户终端与长连接服务器之间的长连接服务处于持续连接状态,当下次需要发送推送消息时,可以直接发送,而不需要再向长连接服务器请求连接,从而可以减小长连接服务器的负荷。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

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