一种建立通信连接的方法、装置和网络设备与流程

文档序号:25992046发布日期:2021-07-23 21:04阅读:54来源:国知局
一种建立通信连接的方法、装置和网络设备与流程

本申请属于通信技术领域,尤其涉及一种建立通信连接的方法、装置和网络设备。



背景技术:

目前,终端设备与服务器之间的通信可以通过两种方式来实现。一种是由终端设备通过超文本传输协议(hypertexttransferprotocol,http)或超文本传输安全协议(hypertexttransferprotocoloversecuresocketlayer,https)调用云端服务器提供的服务接口,主动发起连接请求到云端服务器。由于在完成每次的信息或数据交互后,终端设备便会关闭连接,使得每次调用结束后服务器便失去了与终端设备的连接,在服务器状态变更时,无法及时地知会终端设备。

另一种通信方式则是在终端设备主动发起连接到云端服务器,建立二者之间的连接后,保持长连接状态。当服务器有消息或者状态变更时,可以通过长连接将变更内容推送到终端设备上。

通过保持终端设备与服务器之间的长连接,可以保证服务器消息能够及时地被推送至终端设备。但是,维持长连接对终端设备资源的消耗也十分明显。例如,维持终端设备与服务器之间的长连接,将不可避免地造成终端设备流量与电量的消耗,缩短了终端设备的待机时间。



技术实现要素:

本申请实施例提供了一种建立通信连接的方法、装置和网络设备,可以在维持与服务器之间的通信连接时,减少对终端设备的资源消耗。

第一方面,本申请实施例提供了一种建立通信连接的方法,应用于网络设备,所述方法包括:

当网络设备接收到第一终端设备发送的第一连接请求时,网络设备可以将第一连接请求发送至服务器,以指示服务器建立与第一终端设备之间的第一通信连接。服务器建立起上述第一通信连接后,可以将连接成功信息返回至无线路由器,并由无线路由器通知第一终端设备。上述第一通信连接包括该网络设备与第一终端设备之间的第一连接,以及该网络设备与服务器之间的第二连接;

为了减少维持上述第一通信连接所带来的电量及流量消耗,第一终端设备可以请求网络设备对上述第一通信连接进行托管。第一终端设备可以生成相应的第一托管请求并发送至网络设备。

网络设备在接收到第一终端设备的第一托管请求后,可以根据第一托管请求,断开网络设备与第一终端设备之间的第一连接,并维持网络设备与服务器之间的第二连接。

在本申请实施例的一种可能的实现方式中,网络设备在接收到第一终端设备发送的第一连接请求时,可以提取第一连接请求中的tcp报文,并将该tcp报文透传至服务器,以指示服务器根据tcp报文建立与第一终端设备之间的第一通信连接。

在本申请实施例的另一种可能的实现方式中,网络设备在将tcp报文透传至服务器后,服务器可以根据tcp报文对第一终端设备进行鉴权。若鉴权通过,服务器可以建立与第一终端设备之间的第一通信连接,并将连接成功报文反馈给网络设备,由网络设备将该连接成功报文转发至第一终端设备。第一终端设备在接收到连接成功报文后,可以打开第一监听端口,并根据自身的设备标识和第一监听端口的端口号,生成第一托管请求,然后再将第一托管请求发送至网络设备,请求网络设备对第一通信连接进行托管,并根据监听端口向第一终端设备转发服务器的推送消息。

在本申请实施例的另一种可能的实现方式中,网络设备在接收到第一终端设备的第一托管请求后,可以首先提取第一托管请求中的第一终端设备的设备标识和第一监听端口的端口号,并确定第一终端设备与第一通信连接之间的对应关系,在存储下第一终端设备的设备标识、第一监听端口的端口号,以及,第一终端设备与第一通信连接之间的对应关系后,完成对第一终端设备的托管。此时,可以断开网络设备与第一终端设备之间的第一连接。

在本申请实施例的另一种可能的实现方式中,断开网络设备与第一终端设备之间的第一连接可以由第一终端设备实现。即,网络设备在完成对第一连接的托管后,可以向第一终端设备反馈托管成功信息。第一终端设备在接收到托管成功信息后,可以知道连接已托管成功,此时,可以自动断开与网络设备之间的第一连接。

在本申请实施例的另一种可能的实现方式中,维持网络设备与服务器之间的第二连接可以通过互相向对方设备发送心跳报文的方式来实现。即,网络设备可以通过第二连接,定时向服务器发送心跳报文;或者,通过第二连接,接收来自服务器的心跳报文。

在本申请实施例的另一种可能的实现方式中,网络设备检测到第一终端设备的wi-fi连接断开后,可以发送设备断连通知到服务器,告知服务器第一终端设备已下线。同时,第一终端设备在断开与网络设备之间的wi-fi连接断开后,可以关闭本地监听端口,停止消息监听。另一方面,第一终端设备在检测到有其他可用网络时,可以重新发起第一连接请求到服务器,请求重新建立与服务器之间的第一通信连接。

在本申请实施例的另一种可能的实现方式中,当网络设备检测到与服务器之间的第二连接断开时,可以向第一终端设备发送第二连接断开信息。第一终端设备可以重新发起所述第一连接请求,请求建立服务器与第一终端设备之间的第一通信连接。

在本申请实施例的另一种可能的实现方式中,当网络设备接收到服务器推送的第一消息时,可以首先确定第一消息对应的目标终端设备以及该目标终端设备的监听端口,并建立与目标终端设备的监听端口之间的第三连接,然后通过第三连接,将第一消息发送至目标终端设备。

在本申请实施例的另一种可能的实现方式中,在通过第三连接,将第一消息发送至目标终端设备之后,网络设备可以对目标终端设备对第一消息的处理情况进行监测,当接收到目标终端设备针对第一消息反馈的处理完成信息时,可以断开第三连接,继续通过托管的方式维持与服务器之间的连接。

在本申请实施例的另一种可能的实现方式中,在有多个终端设备接入网络设备并请求建立与服务器之间的通信连接时,例如,当网络设备接收到第二终端设备发送的第二连接请求时,网络设备可以首先识别是否存在待连接的服务器与其他终端设备如第一终端设备之间的第一通信连接。若存在上述第一通信连接,则可以由网络设备直接向第二终端设备返回第二通信连接的连接成功报文。第二终端设备在接收到连接成功报文后,可以打开第二监听端口,并生成第二托管请求发送至网络设备,请求由网络设备对该第二通信连接进行托管。网络设备接收到第二终端设备的第二托管请求后,可以根据第二托管请求,向服务器发送新增设备请求,请求该服务器记录第二终端设备已上线。此时,服务器可以对第二网络设备按上线处理,并记录第二网络设备与已经建立的第一通信连接之间的对应关系,完成新增设备处理,并将新增成功信息返回给网络设备。网络设备在接收到服务器针对新增设备请求反馈的新增成功信息时,可以向第二终端设备反馈托管成功信息。然后,网络设备可以断开自身与第二终端设备之间的第四连接。

在本申请实施例的另一种可能的实现方式中,当网络设备接收到服务器推送的第二消息时,可以确定第二消息对应的多个目标终端设备,上述多个目标终端设备均与当前的网络设备连接。然后,在确定每个目标终端设备的设备标识,根据每个目标终端设备的设备标识,确定每个目标终端设备的监听端口后,网络设备可以分别建立与每个目标终端设备的监听端口之间的第五连接,并通过第五连接,逐一将第二消息发送至每个目标终端设备。

在本申请实施例的另一种可能的实现方式中,在网络设备通过第五连接,将第二消息发送至每个目标终端设备后,网络设备还可以对每个目标终端设备对第二消息的处理结果进行监测。当接收到每个目标终端设备针对第二消息反馈的处理完成信息时,网络设备可以对全部目标终端设备的处理完成信息进行合并,并将合并后的全部目标终端设备的处理完成信息发送至服务器。

第二方面,本申请实施例提供了一种建立通信连接的方法,应用于第一终端设备,所述方法包括:

由第一终端设备向已建立物理连接的网络设备发送第一连接请求,以指示网络设备将第一连接请求转发至服务器,上述第一连接请求可以为建立第一终端设备与服务器之间的第一通信连接的请求,请求建立的第一通信连接包括网络设备与第一终端设备之间的第一连接,以及网络设备与服务器之间的第二连接。当接收到网络设备针对第一连接请求返回的连接成功报文时,第一终端设备可以打开第一监听端口,并根据第一监听端口生成针对第一连接的第一托管请求。在将第一托管请求发送至网络设备后,网络设备可以对第一托管请求进行处理,完成对第一终端设备的长连接的托管。当接收到网络设备反馈的托管成功信息时,第一终端设备可以断开与网络设备之间的第一连接,进入被动接收推送消息转态。

在本申请实施例的一种可能的实现方式中,当第一终端设备检测到与网络设备之间的物理连接断开时,可以关闭第一监听端口,停止消息监听。

第三方面,本申请实施例提供了一种消息推送方法,应用于服务器,所述方法包括:

当服务器接收到网络设备发送的新增设备请求时,可以提取新增设备请求中携带的第一终端设备与已建立的第一通信连接之间的第一对应关系,并在确定待新增的第二终端设备后,建立第二终端设备与第一通信连接之间的第二对应关系,实现第一终端设备与第二终端设备共用一条长连接。

在本申请实施例的一种可能的实现方式中,当服务器接收到针对多个终端设备的推送消息时,可以根据多个终端设备连接的网络设备,对推送信息进行合并;其中,合并后的每份推送消息所对应的多个终端设备均与同一个网络设备连接。然后,再将合并后的每份推送消息分别发送至与对应的多个终端设备连接的网络设备,以指示网络设备逐个将推送消息转发至每个终端设备。

第四方面,本申请实施例提供了一种建立通信连接的装置,应用于网络设备,所述装置包括:

第一连接请求发送模块,用于在接收到第一终端设备发送的第一连接请求时,将所述第一连接请求发送至服务器,以指示所述服务器建立与所述第一终端设备之间的第一通信连接,所述第一通信连接包括所述网络设备与所述第一终端设备之间的第一连接,以及所述网络设备与所述服务器之间的第二连接;

第一托管请求接收模块,用于接收所述第一终端设备针对所述第一通信连接生成的第一托管请求;

第一连接断开模块,用于根据所述第一托管请求,断开所述网络设备与所述第一终端设备之间的第一连接;

第二连接维持模块,用于维持所述网络设备与所述服务器之间的第二连接。

第五方面,本申请实施例提供了一种建立通信连接的装置,应用于第一终端设备,所述装置包括:

第一连接请求发送模块,用于向已建立物理连接的网络设备发送第一连接请求,以指示所述网络设备将所述第一连接请求转发至服务器,所述第一连接请求为建立第一终端设备与所述服务器之间的第一通信连接的请求,所述第一通信连接包括所述网络设备与所述第一终端设备之间的第一连接,以及所述网络设备与所述服务器之间的第二连接;

第一监听端口打开模块,用于在接收到所述网络设备针对所述第一连接请求返回的连接成功报文时,打开第一监听端口;

第一托管请求生成模块,用于根据所述第一监听端口,生成针对所述第一连接的第一托管请求;

第一托管请求发送模块,用于将所述第一托管请求发送至所述网络设备;

第一连接断开模块,用于在接收到所述网络设备反馈的托管成功信息时,断开与所述网络设备之间的所述第一连接。

第六方面,本申请实施例提供了一种消息推送装置,应用于网络设备,所述装置包括:

第一对应关系提取模块,用于在接收到网络设备发送的新增设备请求时,提取所述新增设备请求中携带的第一终端设备与已建立的第一通信连接之间的第一对应关系;

第二对应关系建立模块,用于确定待新增的第二终端设备,建立所述第二终端设备与所述第一通信连接之间的第二对应关系;

新增成功信息反馈模块,用于向所述网络设备反馈新增成功信息。

第七方面,本申请实施例提供了一种网络设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的建立通信连接的方法。

第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被网络设备的处理器执行时实现上述第一方面任一项所述的建立通信连接的方法。

第九方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第二方面任一项所述的建立通信连接的方法。

第十方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被终端设备的处理器执行时实现上述第二方面任一项所述的建立通信连接的方法。

第十一方面,本申请实施例提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第三方面任一项所述的消息推送方法。

第十二方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被服务器的处理器执行时实现上述第三方面任一项所述的消息推送方法。

第十三方面,本申请实施例提供了一种计算机程序产品,当所述计算机程序产品在网络设备上运行时,使得网络设备执行上述第一方面中任一项所述的建立通信连接的方法。

与现有技术相比,本申请实施例包括以下有益效果:

本申请实施例,通过在终端设备所连接的网络设备中增加推送代理机制,实现消息的代收和转发,使得终端设备在建立起与服务器之间的通信连接后,可以将该连接托管给网络设备维持,终端设备只需在本地打开特定监听接口,被动接收网络设备的消息转发,减少为了维持与服务器之间的通信连接而给终端设备带来的不必要的电量、流量消耗;同时,在多个终端设备通过同一网络设备与服务器连接时,只需维持该网络设备与服务器之间的一条连接链路,使得服务器在向连接至同一网络设备的多个终端设备推送相同内容的消息时,也只需推送一份消息即可,节省了消息推送过程中对带宽的占用,提供了消息处理的性能。

附图说明

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

图1是现有技术中终端设备与推送服务器之间的信息交互示意图;

图2是本申请一实施例提供的建立通信连接的方法所应用于的系统的架构示意图;

图3是本申请一实施例提供的建立通信连接的方法的示意性步骤流程图;

图4是本申请一实施例提供的建立通信连接时的信息交互过程示意图;

图5是本申请另一实施例提供的建立通信连接时的信息交互过程示意图;

图6是本申请另一实施例提供的建立通信连接时的信息交互过程示意图;

图7是本申请另一实施例提供的建立通信连接的方法的示意性步骤流程图;

图8是本申请一实施例提供的消息代收和转发过程示意图;

图9是本申请另一实施例提供的建立通信连接的方法的示意性步骤流程图;

图10是本申请一实施例提供的共用长连接的处理过程示意图;

图11是本申请另一实施例提供的建立通信连接的方法的示意性步骤流程图;

图12是本申请实施例提供的向共用长连接的多个终端设备推送消息的过程示意图;

图13是本申请另一实施例提供的建立通信连接的方法的示意性步骤流程图;

图14是本申请一实施例提供的建立通信连接的方法所适用于的手机的硬件结构示意图;

图15是本申请一实施例提供的建立通信连接的方法所适用于的手机的软件结构示意图;

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

图17是本申请一实施例提供的建立通信连接的装置的结构框图;

图18是本申请另一实施例提供的建立通信连接的装置的结构框图;

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

图20是本申请一实施例提供的网络设备的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。

首先,对现有技术中终端设备维持与推送服务器之间的长连接的具体方式作一介绍。

当前,终端设备主要是通过无线保真(wirelessfidelity,wi-fi)协议连接路由器,实现网络访问。然后,终端设备中的推送模块可以创建一条tcp连接到推送服务器,并定期或不定期地通过推送服务器或终端设备向对方发送心跳报文,来保持二者之间的长连接。同时,当推送服务器批量推送重复内容给不同的终端设备时,也需要针对每个终端设备逐一发送相同内容的消息。

如图1所示,是现有技术中终端设备与推送服务器之间的信息交互示意图。按照图1所示的过程,一次完整的信息交互主要包括如下两个步骤:

1)终端设备通过无线wi-fi接入路由器后,主动发起长连接请求到推送服务器,并定期向推送服务器发送心跳报文,确保tcp长连接能够保活;

2)内容提供方调用推送服务器提供的服务器接口,向终端设备发送消息内容时,由推送服务器根据推送指令,查找推送指令中的每个目标终端设备,并通过长连接循环地给每个目标终端设备发送消息内容。

按照图1所示的交互过程,由终端设备发起建立与推送服务器之间的长连接,并定期向推送服务器发送心跳信息或者被动接受推送服务器发送的心跳信息,将会导致终端设备必须长时间地消耗电量,但这些电量的消耗对终端设备的使用者毫无意义。

其次,由于每个终端设备都是单独地与推送服务器建立长连接,就会使得内容提供方即使向多个终端设备推送完全相同的消息,也需要通过推送服务器重复地推送多份相同的消息内容到无线路由器上,再由无线路由器将这些消息分发至每一个终端设备,导致端到端的处理性能整体受损,增加推送服务器在推送消息时对带宽的占用,增加带宽成本。

因此,为了解决终端设备通过无线路由器接入推送服务器并维持长连接发送心跳报文带来的对终端设备的电量消耗,以及推送服务器在批量推送重复内容时性能下降、带宽增加的问题,提出了本申请实施例的核心构思在于,通过在终端设备所连接的网络设备中增加推送代理机制,实现消息的代收和转发,使得终端设备在建立起与服务器之间的通信连接后,将该连接托管给网络设备维持,终端设备只需在本地打开特定监听接口,被动接收网络设备的消息转发,减少为了维持与服务器之间的通信连接而给终端设备带来的不必要的电量、流量消耗;同时,在多个终端设备通过同一网络设备与服务器连接时,只需维持该网络设备与服务器之间的一条连接链路,使得服务器在向连接至同一网络设备的多个终端设备推送相同内容的消息时,也只需推送一份消息即可,节省了消息推送过程中对带宽的占用,提供了消息处理的性能。

如图2所示,是本申请实施例提供的建立通信连接的方法所应用于的系统的架构示意图。按照图2所示的系统架构,本方法主要涉及如下部分:

1)内容提供方,为向终端设备推送消息的发起者;

2)服务器,即推送服务器,实现对内容提供方的消息内容的接收,并根据推送请求,将消息内容转发到目标终端设备上;

3)网络设备,可以是无线路由器等设备,保证终端设备可以通过无线wi-fi接入网络,并转发所有推送服务器与终端设备之间的所有网络数据报文;

4)终端设备,为长连接的主动发起方,同时接收来自推送服务器的消息内容。

下面结合具体的实施例,对本申请的建立通信连接的方法进行介绍。

参照图3,示出了本申请一实施例提供的建立通信连接的方法的示意性步骤流程图,该方法具体可以包括如下步骤:

s301、当接收到第一终端设备发送的第一连接请求时,将所述第一连接请求发送至服务器,以指示所述服务器建立与所述第一终端设备之间的第一通信连接,所述第一通信连接包括所述网络设备与所述第一终端设备之间的第一连接,以及所述网络设备与所述服务器之间的第二连接;

作为示例而非限定,该方法可以应用于网络设备中,该网络设备可以是无线路由器、有线路由器等能够实现将终端设备接入网络的设备。

本申请实施例中的第一终端设备可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmentedreality,ar)/虚拟现实(virtualreality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、上网本、个人数字助理(personaldigitalassistant,pda)等终端设备,本申请实施例对第一终端设备的具体类型不作任何限制。

以下实施例将以网络设备为无线路由器,第一终端设备为手机为例,对本申请实施例提供的建立网络连接的方法进行说明。

在本申请实施例中,第一终端设备在检测到可用网络时,可以尝试发起tcp长连接请求,即第一连接请求到服务器,第一连接请求中携带有第一终端设备的设备标识。

上述第一连接请求首先将被发送至无线路由器,当无线路由器接收到第一终端设备发送的第一连接请求时,可以提取第一连接请求中的传输控制协议tcp报文,并将tcp报文透传至服务器,以指示服务器根据tcp报文建立与第一终端设备之间的第一通信连接。整个第一通信连接的链路可以包括两部分,即网络设备与第一终端设备之间的第一连接,以及该网络设备与服务器之间的第二连接。

需要说明的是,服务器在建立起与第一终端设备之间的第一通信连接后,可以为该第一通信连接分配相应的编号,并在服务器本地记录下第一终端设备与第一通信连接之间的对应关系信息。例如,可以记录下第一终端设备的设备标识与第一通信连接的编号之间的对应关系。

s302、接收所述第一终端设备针对所述第一连接生成的第一托管请求;

在本申请实施例中,针对第一通信连接的连接成功的信息将由服务器发送至无线路由器,再由无线路由器转发至第一终端设备,以通知第一终端设备第一通信连接已经建立。

在建立起与服务器之间的第一通信连接后,为了减少自身的电量、流量等资源的消耗,第一终端设备可以将维持第一通信连接的任务托管给无线路由器。因此,第一终端设备可以向无线路由器发送针对第一连接的第一托管请求。

在具体实现中,当无线路由器接收到服务器针对第一终端设备的第一连接请求返回的连接成功报文时,可以将该连接成功报文转发至第一终端设备,以指示第一终端设备打开第一监听端口并生成第一托管请求。然后,无线路由器可以接收到第一终端设备针对第一连接生成的第一托管请求,上述第一托管请求中携带有第一终端设备的设备标识和第一监听端口的端口号。

需要说明的是,第一监听接口可以是第一终端设备中的任一监听接口,用于在将第一连接托管给无线路由器后,监听无线路由器发送的各类消息。

s303、根据所述第一托管请求,断开所述网络设备与所述第一终端设备之间的第一连接;

无线路由器接收到第一终端设备的第一托管请求后,可以断开自身与第一终端设备之间的第一连接。在需要向第一终端设备发送各类消息时,可以通过第一终端设备已打开的第一监听接口,重新建立二者之间的连接。

在无线路由器断开第一连接前,可以提取第一托管请求中的第一终端设备的设备标识和第一监听端口的端口号,并确定第一终端设备与第一通信连接之间的对应关系,并在无线路由器本地存储上述第一终端设备的设备标识、第一监听端口的端口号,以及,第一终端设备与第一通信连接之间的对应关系后,可以断开无线路由器自身与第一终端设备之间的第一连接。

在本申请的一种示例中,断开第一连接也可以由第一终端设备完成。

例如,在无线路由器完成对第一终端设备的第一托管请求的处理后,可以向第一终端设备反馈托管成功信息,以指示第一终端设备根据托管成功信息断开与无线路由器之间的第一连接。

s304、维持所述网络设备与所述服务器之间的第二连接。

在本申请实施例中,无线路由器可以断开与第一终端设备之间的第一连接,但不断开与服务器之间的第二连接。

在具体实现中,无线路由器可以通过第二连接,定时向服务器发送心跳报文,以维持二者之间的连接。

本申请实施例通过在无线路由器等网络设备中配置长连接托管机制,在终端设备建立起与服务器之间的长连接后,可以将该长连接托管至无线路由器,减少终端设备维持长连接所带来的电量、流程等资源消耗,延长了终端设备的待机时间。

在本申请实施例中,第一终端设备在将长连接托管给无线路由器后,若检测到该无线路由器的wi-fi信号断开,可以关闭本地监听端口,停止消息监听。同时,无线路由器在检测到第一终端设备的wi-fi连接断开后,可以将设备断连的消息发送至服务器,以通知服务器第一终端设备已断开连接。

另一方面,若无线路由器检测到第二连接断开,则可以向第一终端设备发送第二连接断开信息,以指示第一终端设备重新发起第一连接请求,以建立服务器与第一终端设备之间的第一通信连接。重新建立第一通信连接的过程与前述示例中各步骤所描述的过程相同,在此不再赘述。

为了便于理解,下面结合具体的示例,对上述建立通信连接的方法作一介绍。

如图4所示,是本申请实施例提供的建立通信连接时的信息交互过程示意图。图4描述了第一终端设备建立与服务器(推送服务器)之间的长连接,并将该长连接托管给网络设备(无线路由器)的信息交互过程,该过程通过在无线路由器中增加长连接托管模块,优化了终端设备建立长连接与维持长连接的业务逻辑。

具体可以包括如下过程:

1)第一终端设备检测到无线路由器的wi-fi信号,并尝试建立与无线路由器之间的wi-fi物理连接;该过程可以通过在第一终端设备上输入该无线路由器的接入密码来实现;

2)无线路由器鉴权通过后,可以向第一终端设备返回连接成功的信息,该过程可以看作是为下一步建立起第一终端设备与推送服务器之间的tcp连接所做的准备;

3)若第一终端设备检测到可用网络,可尝试发起tcp长连接请求到推送服务器,tcp长连接请求中携带有第一终端设备的设备标识;

4)无线路由器只做tcp报文转发,透传报文内容到推送服务器;

5)推送服务器第一终端设备的长连接请求进行鉴权,若鉴权成功,则在本地记录下第一终端设备的设备标识与长连接的对应关系,并向无线路由器返回连接成功报文;

6)无线路由器转发连接成功报文到第一终端设备;

7)第一终端设备接收到连接成功报文后,在本地打开随机监听端口,尝试将长连接托管给无线路由器;

8)第一终端设备携带设备标识与本地监听端口的端口号构造tcp托管请求,并将该托管请求发送到无线路由器的长连接托管模块;

9)无线路由器的长连接托管模块处理该托管请求,并在本地记录下第一终端设备的设备标识与长连接的对应关系,以及第一终端设备与其分配的本地ip和监听端口之间的关系,托管成功;

10)无线路由器将托管成功的信息返回给第一终端设备,第一终端设备收到托管成功响应后,关闭与无线路由器之间的tcp长连接;

11)无线路由器只关闭与第一终端设备之间的长连接,但不关闭与推送服务器之间的长连接;

12)无线路由器启动定时器,定时向推送服务器发送心跳报文,维持与推送服务器之间的长连接;

13)第一终端设备进入被动接收推送消息的状态。

如图5所示,是本申请另一实施例提供的建立通信连接时的信息交互过程示意图。图5描述了第一终端设备与无线路由器之间的wi-fi连接断开后,第一终端设备、无线路由器与推送服务器之间的信息交互过程。

具体可以包括如下过程:

1)第一终端设备检测到与无线路由器之间的wi-fi连接断开后,可以关闭本地监听端口,停止消息监听;

2)同步地,无线路由器检测到第一终端设备断开了wi-fi连接,发送设备断连通知到推送服务器,上述断连通知中可以包含第一终端设备的设备标识,用于通知推送服务器某台设备已下线;

3)当第一终端设备检测到有其他网络可用(如可以连上其他的无线路由器,或者有可用的移动数据网络)时,可以重新发起tcp长连接请求到推送服务器。第一终端设备重新发起tcp长连接请求到推送服务器后的处理过程如图6所示。

如图6所示,是本申请另一实施例提供的建立通信连接时的信息交互过程示意图。图6描述了无线路由器与推送服务器之间的tcp长连接断开后,第一终端设备、无线路由器与推送服务器之间的信息交互过程。

具体可以包括如下过程:

1)无线路由器可以通过心跳机制检测到与推送服务器之间的长连接断连;

2)无线路由器通过本地记录的第一终端设备的ip地址和随机监听端口的端口号,通知第一终端设备其与推送服务器之间的tcp长连接已经断连;

3)第一终端设备收到无线路由器的断连通知后,可以重新发起tcp长连接请求到推送服务器。第一终端设备重新发起tcp长连接请求到推送服务器后的处理过程如图6所示。

本申请实施例通过在无线路由器上增加长连接托管模块,支持由无线路由器对终端设备的长连接进行托管,减少了由于需要维持与服务器之间的长连接而给终端设备带来的资源消耗。

在本申请实施例中,在通过无线路由器对第一终端设备的长连接进行托管后,无线路由器可以对推送服务器推送的消息进行代收和转发。下面进行详细介绍。

参照图7,示出了本申请另一实施例提供的建立通信连接的方法的示意性步骤流程图,该方法具体可以包括如下步骤:

s701、当接收到第一终端设备发送的第一连接请求时,将所述第一连接请求发送至服务器,以指示所述服务器建立与所述第一终端设备之间的第一通信连接,所述第一通信连接包括所述网络设备与所述第一终端设备之间的第一连接,以及所述网络设备与所述服务器之间的第二连接;

s702、接收所述第一终端设备针对所述第一连接生成的第一托管请求;

s703、根据所述第一托管请求,断开所述网络设备与所述第一终端设备之间的第一连接;

s704、维持所述网络设备与所述服务器之间的第二连接;

需要说明的是,本实施例是在前一实施例的基础上,对通过网络设备(无线路由器)实现推送消息的代收和转发过程进行的介绍。

由于本实施例中步骤s701-s704与前述实施例中步骤s301-s304类似,可以相互参阅,本实施例对此不再赘述。

s705、当接收到所述服务器推送的第一消息时,确定所述第一消息对应的目标终端设备以及所述目标终端设备的监听端口;

需要说明的是,服务器推送的第一消息可以是由内容提供方所提供的,内容提供方可以调用推送服务器的接口,将所要推送的消息和接收该消息的终端设备的设备标识一起发送到推送服务器,再由推送服务器进行推送。

因此,无线路由器接收到服务器推送的第一消息时,可以首先确定第一消息对应的目标终端设备,并从本地记录中确定该目标终端设备已打开的监听端口。上述目标终端设备可以是按照前述实施例完成长连接托管的第一终端设备。

s706、建立与所述目标终端设备的监听端口之间的第三连接;

由于无线路由器代管了目标终端设备与服务器之间的长连接,无线路由器与目标终端设备之间的通信连接处于断开状态,因此为了实现将推送的第一消息转发至目标终端设备,无线路由器需要再次建立与目标终端设备之间的连接。

在具体实现中,无线路由器可以建立与目标终端设备已打开的监听端口之间的连接,即第三连接,通过第三连接实现推送消息的转发。

s707、通过所述第三连接,将所述第一消息发送至所述目标终端设备。

在本申请实施例中,无线路由器可以通过第三连接,将需要转发的第一消息发送至目标终端设备的监听端口上,由目标终端设备对上述第一消息进行处理。例如,目标终端设备可以展示接收到的第一消息的消息内容。

在目标终端设备完成对第一消息的处理后,可以将处理完成信息反馈至无线路由器,再由无线路由器发送至推送服务器。

需要说明的是,当无线路由器接收到目标终端设备针对第一消息反馈的处理完成信息时,可以再次断开无线路由器与目标终端设备之间的连接,即上述第三连接。

在本申请实施例中,通过在无线路由器等网络设备的长连接托管模块上实现推送消息的代收及转发,使得只有在接收到需要推送的消息时,才唤醒终端设备,能够有效地降低终端设备的功耗。

为了便于理解,下面结合具体的示例,对上述消息的代收和转发过程作一介绍。

如图8所示,是本申请实施例提供的消息代收和转发过程示意图。图8是在图4所示的由无线路由器对已建立起的终端设备与推送服务器之间的tcp长连接进行托管的基础上,由无线路由器完成对推送消息的代收和转发时,终端设备、无线路由器、推送服务器以及内容提供方四方之间的信息交互过程,该过程通过在无线路由器的长连接托管模块中增加消息代收和转发的逻辑处理,优化了推送消息的处理过程。

具体可以包括如下过程:

1)当内容提供方需要向终端设备推送消息时,可以将待推送的消息内容和终端设备的设备标识一起发送给推送服务器;

2)推送服务器根据设备标识与长连接之间的对应关系,查找出接收上述推送消息的终端设备的长连接编号;

3)推送服务器将消息内容发送到查找到的长连接中,消息内容将通过上述长连接发送至无线路由器;

4)无线路由器中的长连接托管模块接收到推送的消息内容以及目标终端设备的设备标识后,在本地记录中查找目标终端设备的本地ip地址和监听端口;

5)无线路由器建立到目标终端设备的监听端口的连接,并将消息内容发送到目标终端设备的监听端口上;

6)目标终端设备的监听端口接收到推送的消息内容后可以对该消息进行处理,例如,可以展示推送消息的内容;

7)目标终端设备处理完成后,返回处理完成信息到无线路由器;

8)无线路由器转发处理完成信息到推送服务器,推送服务器再发送到内容提供方;

9)无线路由器断开与目标终端设备之间的连接。

本申请实施例通过在无线路由器中增加消息代收与转发功能,可以使得终端设备在通常情况下保持低功耗运行状态,只有在接收到推送消息时才唤醒执行,进而降低了接收推送消息过程中的功耗。

在本申请实施例中,在通过无线路由器对第一终端设备的长连接进行托管后,若无线路由器连接了多个终端设备,可以共用已建立并托管成功的长连接,将多个终端设备连接至推送服务器。下面进行详细介绍。

参照图9,示出了本申请另一实施例提供的建立通信连接的方法的示意性步骤流程图,该方法具体可以包括如下步骤:

s901、当接收到第一终端设备发送的第一连接请求时,将所述第一连接请求发送至服务器,以指示所述服务器建立与所述第一终端设备之间的第一通信连接,所述第一通信连接包括所述网络设备与所述第一终端设备之间的第一连接,以及所述网络设备与所述服务器之间的第二连接;

s902、接收所述第一终端设备针对所述第一连接生成的第一托管请求;

s903、根据所述第一托管请求,断开所述网络设备与所述第一终端设备之间的第一连接;

s904、维持所述网络设备与所述服务器之间的第二连接;

需要说明的是,本实施例是在前述实施例的基础上,对连接至同一网络设备(无线路由器)多个终端设备共用一条长连接的过程进行的介绍。

由于本实施例中步骤s901-s904与前述实施例中步骤s301-s304类似,可以相互参阅,本实施例对此不再赘述。

s905、当接收到第二终端设备发送的第二连接请求时,识别是否存在所述服务器与所述第一终端设备之间的第一通信连接,所述第二连接请求为建立所述服务器与所述第二终端设备之间的第二通信连接的请求,所述第二通信连接包括所述网络设备与所述第二终端设备之间的第四连接;

需要说明的是,第二终端设备可以是与第一终端设备连接至同一无线路由器的终端设备。第二终端设备可以是与第一终端设备相同的终端设备,也可以是与第一终端设备不同的终端设备,本实施例对此不作限定。

在本申请实施例中,上述第二连接请求可以是指建立第二终端设备与服务器之间的tcp长连接的请求。因此,当无线路由器接收到第二终端设备发送的第二连接请求时,可以首先识别是否存在该服务器与其他终端设备之间的通信连接。例如,是否存在服务器与第一终端设备之间的第一通信连接。

s906、若存在所述第一通信连接,则向所述第二终端设备返回所述第二通信连接的连接成功报文,以指示所述第二终端设备打开第二监听端口;

在本申请实施例中,若已经存在服务器与第一终端设备之间的第一通信连接,则新接入的第二终端设备可以与第一终端设备共用已建立的第一通信连接。

此时,无线路由器可以直接向第二终端设备返回连接成功报文,并指示第二终端设备打开第二监听端口。

s907、接收所述第二终端设备的第二托管请求,根据所述第二托管请求,向所述服务器发送新增设备请求,以请求所述服务器记录所述第二终端设备已上线;

另一方面,在建立起与服务器之间的通信连接后,为了减少自身的电量、流量等资源的消耗,第二终端设备可以将维持通信连接的任务托管给无线路由器。第二终端设备可以向无线路由器发送第二托管请求,请求无线路由器对上述连接进行托管。

无线路由器在接收到第二终端设备的托管请求后,可以将第二终端设备的设备标识发送至服务器,向服务器发起新增设备请求。

服务器在对无线路由器的新增设备请求进行处理后,可以记录第二终端设备的设备标识与已经建立的长连接之间的对应关系,按已上线对第二终端设备进行处理,并返回新增成功信息给无线路由器。

s908、当接收到所述服务器针对所述新增设备请求反馈的新增成功信息时,向所述第二终端设备反馈托管成功信息,以指示所述第二终端设备断开与所述网络设备之间的第四连接。

无线路由器接收到服务器的新增成功信息后,可以在本地记录第二终端设备的设备标识以及本地ip地址及监听端口之间的对应关系信息,完成对第二终端设备长连接的托管,并向第二终端设备反馈托管成功信息。

第二终端设备接收到无线路由器反馈的托管成功信息后,可以断开与无线路由器之间的连接,即断开上述第四连接,进入被动接收消息推送的状态。

另一方面,无线路由器可以继续进行后续流程的处理,定时发送心跳信息至服务器,维持与服务器之间的长连接。

在有新终端设备接入时,本申请实施例可以首先判断是否有长连接存在,若已经存在建立起的长连接,则可以由无线路由器向服务器发起新增设备请求,从而实现在多个终端设备都共同连接一个无线路由器的情况下,共用一条tcp长连接链路的功能,节省了无线路由器的数据处理负荷及推送服务器的连接负荷;同时,由于只需要一条tcp长连接就能保持多个终端设备与推送服务器之间的连接,相应地也就只需要维护一组心跳报文即可,降低了网络拥塞。

为了便于理解,下面结合具体的示例,对上述共用同一条长连接的过程作一介绍。

如图10所示,是本申请实施例提供的共用长连接的处理过程示意图。图10是在图4所示的由无线路由器对已建立起的第一终端设备与推送服务器之间的tcp长连接进行托管的基础上,在新增第二终端设备连接至同一无线路由器时,共用同一条长连接时,多个终端设备、无线路由器及推送服务器之间的信息交互过程,该过程通过在无线路由器长连接托管模块上,增加连接合并的处理,实现了多个终端设备共用一条长连接。

具体可以包括如下过程:

1)第一终端设备建立tcp长连接到推送服务器,并请求无线路由器托管长连接成功,具体流程与图4所示的流程相同,在此不再赘述;

2)第二终端设备建立与无线路由器之间的wi-fi连接;

3)第二终端设备发起长连接请求到推送服务器,无线路由器可以捕获到第二终端设备发起的长连接请求;

4)无线路由器的长连接托管模块判断是否已经存在到指定的推送服务器之间的长连接;

5)如果不存在,则进入图4所示的流程,建立长连接;如果已经存在到指定的推送服务器之间的长连接,则直接向第二终端设备返回连接成功的信息;

6)第二终端设备接收到连接成功的信息后,打开本地随机监听端口;

7)第二终端设备基于自身的设备标识和监听端口的端口号生成tcp长连接托管请求,并该托管请求发送到无线路由器的长连接托管模块;

8)无线路由器发起新增在线设备请求到对应的推送服务器;

9)推送服务器按设备上线对第二终端设备进行处理,记录第二终端设备的设备标识与已建立的长连接之间的对应关系,并向无线路由器返回新增成功信息;

10)无线路由器长连接托管模块处理托管逻辑,在本地记录第二终端设备的设备标识与本地ip地址及监听端口之间的对应关系,在处理完成后,向第二终端设备返回长连接托管成功的信息;

11)第二终端设备关闭其与无线路由器之间的长连接,并进入被动接收消息推送的状态,通过监听端口监听无线路由器转发的消息;

12)无线路由器继续进行后续流程,定时发送心跳请求到推送服务器,维持与推送服务器之间的长连接。

需要说明的是,以上仅以第二终端设备与第一终端设备共用同一条长连接为例对长连接的共用过程进行了介绍,在实际处理过程中,共用同一条长连接的终端设备还可以包括第三终端设备、第四终端设备等等,本实施例对共用长连接的终端设备的数量不作限定。

本申请实施例,通过在无线路由器长连接托管模块上,增加连接合并的处理,可以实现多个终端设备共用一条长连接,有助于节省无线路由器的负荷及推送服务器的连接负荷;由于共用长连接后只需要维护一组心跳报文,也能够有效地降低网络拥塞。

在本申请实施例中,在多个终端设备共用同一条长连接的基础上,还可以实现对推送服务器推送的相同内容的消息进行合并处理,使得多份重复的推送内容只下发一份,提升了推送系统的效率。下面进行详细介绍。

参照图11,示出了本申请另一实施例提供的建立通信连接的方法的示意性步骤流程图,该方法具体可以包括如下步骤:

s1101、当接收到第一终端设备发送的第一连接请求时,将所述第一连接请求发送至服务器,以指示所述服务器建立与所述第一终端设备之间的第一通信连接,所述第一通信连接包括所述网络设备与所述第一终端设备之间的第一连接,以及所述网络设备与所述服务器之间的第二连接;

s1102、接收所述第一终端设备针对所述第一连接生成的第一托管请求;

s1103、根据所述第一托管请求,断开所述网络设备与所述第一终端设备之间的第一连接;

s1104、维持所述网络设备与所述服务器之间的第二连接;

s1105、当接收到第二终端设备发送的第二连接请求时,识别是否存在所述服务器与所述第一终端设备之间的第一通信连接,所述第二连接请求为建立所述服务器与所述第二终端设备之间的第二通信连接的请求,所述第二通信连接包括所述网络设备与所述第二终端设备之间的第四连接;

s1106、若存在所述第一通信连接,则向所述第二终端设备返回所述第二通信连接的连接成功报文,以指示所述第二终端设备打开第二监听端口;

s1107、接收所述第二终端设备的第二托管请求,根据所述第二托管请求,向所述服务器发送新增设备请求,以请求所述服务器记录所述第二终端设备已上线;

s1108、当接收到所述服务器针对所述新增设备请求反馈的新增成功信息时,向所述第二终端设备反馈托管成功信息,以指示所述第二终端设备断开与所述网络设备之间的第四连接;

需要说明的是,本实施例是在前述实施例的基础上,对多个终端设备共用同一条长连接时,针对多个终端设备的推送消息进行处理的过程进行的介绍。

由于本实施例中步骤s1101-s1108与前述实施例中步骤s901-s908类似,可以相互参阅,本实施例对此不再赘述。

s1109、当接收到所述服务器推送的第二消息时,确定所述第二消息对应的多个目标终端设备,所述多个目标终端设备均与当前的网络设备连接;

需要说明的是,第二消息可以是指需要推送给多个终端设备的消息。与第一消息类似,服务器推送的第二消息也可以是由内容提供方所提供的,内容提供方可以调用推送服务器的接口,将所要推送的消息和接收该消息的终端设备的设备标识一起发送到推送服务器,再由推送服务器进行推送。

在本申请实施例中,当接收消息的多个终端设备与同一台无线路由器连接,并共用一条长连接时,推送服务器可以对需要推送的多份消息进行合并处理,得到上述合并后的第二消息。

无线路由器在接收到推送服务器推送的第二消息后,可以从第二消息中查找出需要接收该消息的多个目标终端设备。

s1110、确定每个目标终端设备的设备标识,根据所述每个目标终端设备的设备标识,确定所述每个目标终端设备的监听端口;

在本申请实施例中,无线路由器在确定出每个目标终端设备,可以根据本地记录的每个目标终端设备的设备标识与监听端口之间的对应关系信息,查找出每个目标终端设备的监听端口。

s1111、分别建立与所述每个目标终端设备的监听端口之间的第五连接;

由于无线路由器代管了每个目标终端设备与服务器之间的长连接,无线路由器与目标终端设备之间的通信连接处于断开状态,因此为了实现将推送的第二消息转发至目标终端设备,无线路由器需要再次建立与目标终端设备之间的连接。

在具体实现中,无线路由器可以建立与目标终端设备已打开的监听端口之间的连接,即第五连接,通过第五连接实现推送消息的转发。

s1112、通过所述第五连接,分别将所述第二消息发送至所述每个目标终端设备。

在本申请实施例中,无线路由器可以通过第五连接,将需要转发的第二消息发送至目标终端设备的监听端口上,由目标终端设备对上述第二消息进行处理。

在目标终端设备完成对第二消息的处理后,可以将处理完成信息反馈至无线路由器,再由无线路由器发送至推送服务器。

需要说明的是,无线路由器接收到的处理完成信息来自多个目标终端设备。因此,当无线路由器接收到每个目标终端设备针对第二消息反馈的处理完成信息时,可以首先对全部目标终端设备的处理完成信息进行合并,然后再将合并后的全部目标终端设备的处理完成信息至服务器,减少逐条发送处理完成信息带来的压力。

在本申请实施例中,当内容提供方以广播的方式发送相同内容到不同终端设备,并且这些终端设备均连接了相同的无线路由器时,可以通过推送服务器查找长连接并按路由器标识对待推送的相同内容的消息进行合并,然后再由推送服务器将合并后的消息下发至无线路由器;由无线路由器通过查找设备ip和监听端口,逐一建立终端设备与无线路由器之间的连接并下发推送消息;另一方面,无线路由器也可以对各个终端设备反馈的处理完成信息进行合并后,再将合并后的结果返回给推送服务器,实现了重复消息内容只发一份,在到达无线路由器后再在本地进行分发,提升了消息推送系统的效率和性能,节省了推送服务器的带宽成本。

为了便于理解,下面结合具体的示例,对上述共用同一条长连接的多个终端设备进行消息推送的过程作一介绍。

如图12所示,是本申请实施例提供的向共用长连接的多个终端设备推送消息的过程示意图。图12是在图10所示的多个终端设备共用长连接的基础上,向多个终端设备推送相同的消息时,多个终端设备、无线路由器、推送服务器及内容提供方之间的信息交互过程,该过程通过对待推送的相同内容的消息进行合并处理,实现了相同内容的消息只下发一份,提升了消息推送系统的效率和性能,节省了推送服务器的带宽成本。

具体可以包括如下过程:

1)内容提供方以广播的方式向推送服务器批量推送消息;

2)推送服务器逐一查找每个目标终端设备的长连接;

3)推送服务器根据每个目标终端设备连接的无线路由器进行消息归并,将连接至同一个无线路由器的多个目标终端设备的消息归并为一份,使得每个无线路由器只下发一份消息内容;

4)推送服务器将合并后的消息内容,以及与该无线路由器连接的多个目标终端设备的设备标识,一同发送到无线路由器上;

5)无线路由器根据目标终端设备的设备标识查找对应的ip地址和监听端口;

6)无线路由器逐一建立与每个目标终端设备的连接,并逐一发送推送消息内容到目标终端设备上;

7)终端设备处理推送消息,并返回处理完成信息到无线路由器;

8)无线路由器关闭到每个目标终端设备的连接;

9)无线路由器接收到所有目标终端设备反馈的处理完成信息后,对接收到的信息进行合并,得到合并后的发送结果;

10)无线路由器将合并后的发送结果返回给推送服务器;

11)推送服务器将合并后的发送结果返回给内容提供方。

本申请实施例针对批量推送场景,在推送服务器上增加了推送内容合并的处理逻辑,对于内容相同的推送消息,将连接至同一个无线路由器的多个终端设备的推送消息合并成一份,并只向该无线路由器推送一份消息;另一方面,无线路由器在接收到推送服务器的批量推送请求时,可以循环地给每个目标终端设备发送相同推送内容的消息,提升了消息推送系统的效率和性能,节省了推送服务器的带宽成本。

参照图13,示出了本申请另一实施例提供的建立通信连接的方法的示意性步骤流程图,该方法具体可以包括如下步骤:

s1301、向已建立物理连接的网络设备发送第一连接请求,以指示所述网络设备将所述第一连接请求转发至服务器,所述第一连接请求为建立第一终端设备与所述服务器之间的第一通信连接的请求,所述第一通信连接包括所述网络设备与所述第一终端设备之间的第一连接,以及所述网络设备与所述服务器之间的第二连接;

需要说明的是,本方法可以应用于终端设备,即本实施例是从终端设备侧来对本方法进行的介绍。本实施例中的第一终端设备即是前述网络设备侧实施例中的第一终端设备。

本申请实施例中的第一终端设备可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmentedreality,ar)/虚拟现实(virtualreality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、上网本、个人数字助理(personaldigitalassistant,pda)等终端设备,本申请实施例对终端设备的具体类型不作任何限制。

以第一终端设备为手机为例。图14示出的是与本申请实施例提供的手机的部分结构的框图。参考图14,手机1400包括:射频(radiofrequency,rf)电路1410、存储器1420、输入单元1430、显示单元1440、传感器1450、音频电路1460、wi-fi模块1470、处理器1480、以及电源1490等部件。本领域技术人员可以理解,图14中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,rf电路1410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1480处理;另外,将设计上行的数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路1410还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。

存储器1420可用于存储软件程序以及模块,处理器1480通过运行存储在存储器1420的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元1430可用于接收输入的数字或字符信息,以及产生与手机1400的用户设置以及功能控制有关的键信号输入。具体地,输入单元1430可包括触控面板1431以及其他输入设备1432。触控面板1431,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1431上或在触控面板1431附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1431可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1480,并能接收处理器1480发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1431。除了触控面板1431,输入单元1430还可以包括其他输入设备1432。具体地,其他输入设备1432可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元1440可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1440可包括显示面板1441,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板1441。进一步的,触控面板1431可覆盖显示面板1441,当触控面板1431检测到在其上或附近的触摸操作后,传送给处理器1480以确定触摸事件的类型,随后处理器1480根据触摸事件的类型在显示面板1441上提供相应的视觉输出。虽然在图14中,触控面板1431与显示面板1441是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1431与显示面板1441集成而实现手机的输入和输出功能。

手机1400还可包括至少一种传感器1450,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1441的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1441和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路1460、扬声器1461,传声器1462可提供用户与手机之间的音频接口。音频电路1460可将接收到的音频数据转换后的电信号,传输到扬声器1461,由扬声器1461转换为声音信号输出;另一方面,传声器1462将收集的声音信号转换为电信号,由音频电路1460接收后转换为音频数据,再将音频数据输出处理器1480处理后,经rf电路1410以发送给比如另一手机,或者将音频数据输出至存储器1420以便进一步处理。

wi-fi属于短距离无线传输技术,手机通过wi-fi模块1470可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。

处理器1480是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1420内的软件程序和/或模块,以及调用存储在存储器1420内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1480可包括一个或多个处理单元;优选的,处理器1480可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1480中。

手机1400还包括给各个部件供电的电源1490(比如电池),可选的,电源可以通过电源管理系统与处理器1480逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机1400还可以包括摄像头。可选地,摄像头在手机1400的上的位置可以为前置的,也可以为后置的,本申请实施例对此不作限定。

可选地,手机1400可以包括单摄像头、双摄像头或三摄像头等,本申请实施例对此不作限定。

例如,手机1400可以包括三摄像头,其中,一个为主摄像头、一个为广角摄像头、一个为长焦摄像头。

可选地,当手机1400包括多个摄像头时,这多个摄像头可以全部前置,或者全部后置,或者一部分前置、另一部分后置,本申请实施例对此不作限定。

另外,尽管未示出,手机1400还可以包括蓝牙模块等,在此不再赘述。

图15是本申请实施例的手机1400的软件结构示意图。以手机1400操作系统为android系统为例,在一些实施例中,将android系统分为四层,分别为应用程序层、应用程序框架层(framework,fwk)、系统层以及硬件抽象层,层与层之间通过软件接口通信。

如图15所示,所述应用程序层可以包括一系列应用程序包,应用程序包可以包括短信息,日历,相机,视频,导航,图库,通话等应用程序。

应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramminginterface,api)和编程框架。应用程序框架层可以包括一些预先定义的函数,例如用于接收应用程序框架层所发送的事件的函数。

如图15所示,应用程序框架层可以包括窗口管理器、资源管理器以及通知管理器等。

窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。

资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。

通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。

应用程序框架层还可以包括:

视图系统,所述视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。

电话管理器用于提供手机1400的通信功能。例如通话状态的管理(包括接通,挂断等)。

系统层可以包括多个功能模块。例如:传感器服务模块,物理状态识别模块,三维图形处理库(例如:opengles)等。

传感器服务模块,用于对硬件层各类传感器上传的传感器数据进行监测,确定手机1400的物理状态;

物理状态识别模块,用于对用户手势、人脸等进行分析和识别;

三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。

系统层还可以包括:

表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。

媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。

硬件抽象层是硬件和软件之间的层。硬件抽象层可以包括显示驱动,摄像头驱动,传感器驱动等,用于驱动硬件层的相关硬件,如显示屏、摄像头、传感器等。

以下实施例以第一终端设备为手机1400为例进行具体的介绍。

在本申请实施例中,已建立物理连接的网络设备可以是指已经与手机建立wi-fi连接的无线路由器。在手机已连接至无线路由器后,可以主动发送第一连接请求,请求建立与服务器之间的第一通信连接,上述第一连接请求可以经由无线路由器透传至服务器。

服务器在接收到手机的连接请求后,可以对该请求进行鉴权处理。若鉴权通过,则可以建立服务器与手机之间的第一通信连接,并向无线路由器返回连接成功报文,上述连接成功报文也将由无线路由器转发至手机。

同时,在建立服务器与手机之间的第一通信连接后,服务器与无线路由器均可以记录下该手机与第一通信连接之间的对应关系。

s1302、当接收到所述网络设备针对所述第一连接请求返回的连接成功报文时,打开第一监听端口;

在本申请实施例中,当手机接收到无线路由器返回的连接成功报文后,手机可以随机打开本地的第一监听端口,该第一监听端口可以用于在后续断开与无线路由器之间的第一连接后,实时监听无线路由器转发的各类消息或信息。

s1303、根据所述第一监听端口,生成针对所述第一连接的第一托管请求;

在本申请实施例中,当手机打开第一监听端口后,可以根据第一监听端口生成第一托管请求,上述托管请求可以是指将第一连接托管至无线路由器的请求。

在具体实现中,生成的第一托管请求中可以携带有手机与第一通信连接之间的对应关系,以及手机已打开的第一监听端口的端口号。

s1304、将所述第一托管请求发送至所述网络设备;

上述第一托管请求可以通过已建立的第一连接发送至无线路由器。

s1305、当接收到所述网络设备反馈的托管成功信息时,断开与所述网络设备之间的所述第一连接。

在本申请实施例中,无线路由器在接收到手机发送的托管请求后,可以对该托管请求进行处理,并在本地记录下手机的设备标识与第一通信连接的对应关系,以及手机与其分配的本地ip和监听端口之间的关系。待完成托管处理后,无线路由器可以向手机反馈托管成功信息。

手机在接收到无线路由器反馈的托管成功信息后,可以断开与无线路由器之间的连接,即第一连接,进入被动接收推送消息的状态。

在本申请的一种示例中,当手机检测到与无线路由器之间的物理连接断开时,即手机与无线路由器的wi-fi连接断开时,可以关闭第一监听端口,停止消息监听。

另一方面,当手机检测到有其他可用网络时,例如,手机可以连接上其他的无线路由器,或者存在可用的移动数据网络时,可以重新发起第一连接请求到服务器,重新建立上述第一通信连接,并在建立连接后,将该连接托管给无线路由器或其他提供网络的设备。

由于本实施例是从第一终端设备的角度来对本申请的建立通信连接的方法进行的介绍,其完整过程与前述网络设备侧实施例所介绍的过程基本类似,本实施例对此介绍得比较简单,相关细节参阅前述实施例即可。

本申请实施例,通过对终端设备建立长连接的过程进行优化,使得终端设备在建立长连接并打开本地监听端口后可以将该长连接托管给无线路由器等网络设备,由监听端口对网络设备转发的各类消息进行监听,减少了终端设备主动维持长连接所带来的电量及流量消耗,延长了终端设备的待机时间。

参照图16,示出了本申请一实施例提供的消息推送方法的示意性步骤流程图,该方法具体可以包括如下步骤:

s1601、当接收到网络设备发送的新增设备请求时,提取所述新增设备请求中携带的第一终端设备与已建立的第一通信连接之间的第一对应关系;

需要说明的是,本方法可以应用于服务器,即本实施例的执行主体为服务器,该服务器可以是前述各个实施例中的推送服务器。

本实施例是针对多个终端设备共用一条长连接并将长连接托管至无线路由器等网络设备的过程进行的介绍。

在本申请实施例中,新增设备请求可以是在无线路由器接收到新接入的终端设备发送的建立长连接的请求时触发的。

在具体实现中,接入该无线路由器中的第一终端设备已经与服务器建立了长连接,并将长连接托管至无线路由器。此时,若存在其他终端设备接入该无线路由器并向其发送了建立与服务器之间的连接请求时,例如第二终端设备接入无线路由器,并向无线路由器发送请求建立与服务器之间的第二通信连接的请求时,无线路由器在识别出已经存在有与指定服务器之间的长连接时,可以向服务器发送新增设备请求,请求服务器允许第二终端设备与第一终端设备共用同一条长连接。

当服务器接收到上述新增设备请求后,可以首先提取该请求中携带的第一终端设备与已建立的第一通信连接之间的第一对应关系,用于确认待新增的第二终端设备所请求共用的长连接是哪一条。

s1602、确定待新增的第二终端设备,建立所述第二终端设备与所述第一通信连接之间的第二对应关系;

在本申请实施例中,服务器可以通过从新增设备请求中提取出待新增的第二终端设备的设备标识来确定第二终端设备。

若第二终端设备与第一终端设备均接入了同一个无线路由器,且第一终端设备已经建立起与服务器之间的长连接,则服务器可以在本地记录下第二终端设备与第一终端设备的长连接之间的对应关系,即第二对应关系,完成新增设备的处理。

s1603、向所述网络设备反馈新增成功信息。

服务器在完成新增设备的处理后,可以向无线路由器反馈新增成功信息,告知无线路由器已经在服务器侧对待新增的第二终端设备按已上线进行处理。

在本申请实施例中,在接收到接入相同网络设备的终端设备的连接请求时,通过判断该网络设备中是否存在已建立的长连接,若存在此类长连接,则可以建立新接入的网络设备与已建立的长连接之间的对应关系,使多个终端设备共用一条长连接,减少网络设备维持多个终端设备的长连接的带宽压力。

在本申请的一种示例中,在多个终端设备均与同一个网络设备连接,共用一条长连接的情况下,服务器还可以对需要推送至各个终端设备的相同内容的消息进行合并,使得服务器只需要向每个网络设备发送一份消息即可。

在具体实现中,当服务器接收到针对多个终端设备的推送消息时,可以首先根据多个终端设备连接的网络设备,对推送信息进行合并,使得合并后的每份推送消息所对应的多个终端设备均与同一个网络设备连接。

例如,当内容提供方需要向第一终端设备和第二终端设备各推送一条消息时,所推送的消息以及第一终端设备和第二终端设备的设备标识将会被提供给服务器。若服务器经过查找发现第一终端设备与第二终端设备连接至同一个无线路由器,共用同一条长连接,且需要发送给第一终端设备和第二终端设备的消息内容相同,服务器便可以将两条消息进行合并。

需要说明的是,对推送信息进行合并可以是指对内容相同的消息,仅处理其中一份,并建立该消息与多个终端设备之间的对应关系,使得合并后的每份推送消息所对应的多个终端设备均与同一个网络设备连接。

然后,服务器可以将合并后的每份推送消息分别发送至与对应的多个终端设备连接的网络设备,以指示网络设备将推送消息转发至每个终端设备。

例如,对于上述第一终端设备和第二终端设备,服务器可以仅向第一终端设备和第二终端设备连接的无线路由器下发一份消息,待无线路由器接收到该消息后,再分别将消息逐个转发至第一终端设备和第二终端设备。

由于本实施例是从向接入同一个网络设备的多个终端设备推送内容相同的消息的角度来进行的介绍,相关细节已在前述网络设备侧实施例所介绍的过程中进行了详细描述,本实施例对此介绍得比较简单,相关细节参阅前述实施例即可。

本申请实施例针对批量推送场景,在推送服务器上增加了推送内容合并的处理逻辑,对于内容相同的推送消息,将连接至同一个无线路由器的多个终端设备的推送消息合并成一份,并只向该无线路由器推送一份消息;无线路由器在接收到推送服务器的批量推送请求时,可以循环地给每个终端设备发送相同推送内容的消息,提升了消息推送系统的效率和性能,节省了推送服务器的带宽成本。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

对应于上文实施例所述的建立通信连接的方法,图17示出了本申请一实施例提供的建立通信连接的装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。

参照图17,该装置可以应用于网络设备中,具体可以包括如下模块:

第一连接请求发送模块1701,用于在接收到第一终端设备发送的第一连接请求时,将所述第一连接请求发送至服务器,以指示所述服务器建立与所述第一终端设备之间的第一通信连接,所述第一通信连接包括所述网络设备与所述第一终端设备之间的第一连接,以及所述网络设备与所述服务器之间的第二连接;

第一托管请求接收模块1702,用于接收所述第一终端设备针对所述第一通信连接生成的第一托管请求;

第一连接断开模块1703,用于根据所述第一托管请求,断开所述网络设备与所述第一终端设备之间的第一连接;

第二连接维持模块1704,用于维持所述网络设备与所述服务器之间的第二连接。

在本申请实施例中,所述第一连接请求发送模块1701具体可以包括如下子模块:

tcp报文提取子模块,用于在接收到第一终端设备发送的第一连接请求时,提取所述第一连接请求中的传输控制协议tcp报文;

tcp报文透传子模块,用于将所述tcp报文透传至所述服务器,以指示所述服务器根据所述tcp报文建立与所述第一终端设备之间的第一通信连接。

在本申请实施例中,所述第一托管请求接收模块1702具体可以包括如下子模块:

连接成功报文转发子模块,用于在接收到所述服务器针对所述第一连接请求返回的连接成功报文时,将所述连接成功报文转发至所述第一终端设备,以指示所述第一终端设备打开第一监听端口;

第一托管请求接收子模块,用于接收所述第一终端设备针对所述第一连接生成的第一托管请求,所述第一托管请求中携带有所述第一终端设备的设备标识和所述第一监听端口的端口号。

在本申请实施例中,所述第一连接断开模块1703具体可以包括如下子模块:

设备标识和端口号提取子模块,用于提取所述第一托管请求中的所述第一终端设备的设备标识和所述第一监听端口的端口号;

对应关系确定子模块,用于确定所述第一终端设备与所述第一通信连接之间的对应关系;

设备标识、端口号及对应关系存储子模块,用于存储所述第一终端设备的设备标识、所述第一监听端口的端口号,以及,所述第一终端设备与所述第一通信连接之间的对应关系;

第一连接断开子模块,用于断开所述网络设备与所述第一终端设备之间的第一连接。

在本申请实施例中,所述第一连接断开子模块具体可以包括如下单元:

托管成功信息反馈单元,用于向所述第一终端设备反馈托管成功信息,以指示所述第一终端设备根据所述托管成功信息断开与所述网络设备之间的第一连接。

在本申请实施例中,所述第二连接维持模块1704具体可以包括如下子模块:

心跳报文发送子模块,用于通过所述第二连接,定时向所述服务器发送心跳报文。

在本申请实施例中,所述装置还可以包括如下模块:

第二连接断开信息发送模块,用于在检测到所述第二连接断开时,向所述第一终端设备发送第二连接断开信息,以指示所述第一终端设备重新发起所述第一连接请求,以建立所述服务器与所述第一终端设备之间的第一通信连接。

在本申请实施例中,所述装置还可以包括如下模块:

目标终端设备确定模块,用于在接收到所述服务器推送的第一消息时,确定所述第一消息对应的目标终端设备以及所述目标终端设备的监听端口;

第三连接建立模块,用于建立与所述目标终端设备的监听端口之间的第三连接;

第一消息发送模块,用于通过所述第三连接,将所述第一消息发送至所述目标终端设备。

在本申请实施例中,所述装置还可以包括如下模块:

第三连接断开模块,用于在接收到所述目标终端设备针对所述第一消息反馈的处理完成信息时,断开所述第三连接。

在本申请实施例中,所述装置还可以包括如下模块:

第一通信连接识别模块,用于在接收到第二终端设备发送的第二连接请求时,识别是否存在所述服务器与所述第一终端设备之间的第一通信连接,所述第二连接请求为建立所述服务器与所述第二终端设备之间的第二通信连接的请求,所述第二通信连接包括所述网络设备与所述第二终端设备之间的第四连接;

第二通信连接反馈模块,用于若存在所述第一通信连接,则向所述第二终端设备返回所述第二通信连接的连接成功报文,以指示所述第二终端设备打开第二监听端口;

第二托管请求接收模块,用于接收所述第二终端设备的第二托管请求;

新增设备请求发送模块,用于根据所述第二托管请求,向所述服务器发送新增设备请求,以请求所述服务器记录所述第二终端设备已上线;

第二托管请求反馈模块,用于在接收到所述服务器针对所述新增设备请求反馈的新增成功信息时,向所述第二终端设备反馈托管成功信息,以指示所述第二终端设备断开与所述网络设备之间的第四连接。

在本申请实施例中,所述目标终端设备确定模块,还用于在接收到所述服务器推送的第二消息时,确定所述第二消息对应的多个目标终端设备,所述多个目标终端设备均与当前的网络设备连接;

在本申请实施例中,所述装置还可以包括如下模块:

目标终端设备标识及端口确定模块,用于确定每个目标终端设备的设备标识,根据所述每个目标终端设备的设备标识,确定所述每个目标终端设备的监听端口;

第五连接建立模块,用于分别建立与所述每个目标终端设备的监听端口之间的第五连接;

第二消息发送模块,用于通过所述第五连接,分别将所述第二消息发送至所述每个目标终端设备。

在本申请实施例中,所述装置还可以包括如下模块:

消息合并模块,用于在接收到所述每个目标终端设备针对所述第二消息反馈的处理完成信息时,对全部目标终端设备的处理完成信息进行合并;

合并消息发送模块,用于将合并后的全部目标终端设备的处理完成信息发送至所述服务器。

参见图18,是本申请另一实施例提供的建立通信连接的装置的结构框图,该装置可以应用于第一终端设备,该装置具体可以包括如下模块:

第一连接请求发送模块1801,用于向已建立物理连接的网络设备发送第一连接请求,以指示所述网络设备将所述第一连接请求转发至服务器,所述第一连接请求为建立第一终端设备与所述服务器之间的第一通信连接的请求,所述第一通信连接包括所述网络设备与所述第一终端设备之间的第一连接,以及所述网络设备与所述服务器之间的第二连接;

第一监听端口打开模块1802,用于在接收到所述网络设备针对所述第一连接请求返回的连接成功报文时,打开第一监听端口;

第一托管请求生成模块1803,用于根据所述第一监听端口,生成针对所述第一连接的第一托管请求;

第一托管请求发送模块1804,用于将所述第一托管请求发送至所述网络设备;

第一连接断开模块1805,用于在接收到所述网络设备反馈的托管成功信息时,断开与所述网络设备之间的所述第一连接。

在本申请实施例中,所述装置还可以包括如下模块:

第一监听端口关闭模块,用于在检测到与所述网络设备之间的物理连接断开时,关闭所述第一监听端口。

参见图19,是本申请一实施例提供的消息推送装置的结构框图,该装置可以应用于服务器中,该装置具体可以包括如下模块:

第一对应关系提取模块1901,用于在接收到网络设备发送的新增设备请求时,提取所述新增设备请求中携带的第一终端设备与已建立的第一通信连接之间的第一对应关系;

第二对应关系建立模块1902,用于确定待新增的第二终端设备,建立所述第二终端设备与所述第一通信连接之间的第二对应关系;

新增成功信息反馈模块1903,用于向所述网络设备反馈新增成功信息。

在本申请实施例中,所述装置还可以包括如下模块:

推送信息合并模块,用于在接收到针对多个终端设备的推送消息时,根据所述多个终端设备连接的网络设备,对所述推送信息进行合并;其中,合并后的每份推送消息所对应的多个终端设备均与同一个网络设备连接;

消息推送模块,用于将合并后的每份推送消息分别发送至与对应的多个终端设备连接的网络设备,以指示所述网络设备将所述推送消息转发至每个终端设备。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。

参照图20,示出了本申请一实施例的一种网络设备的示意图。如图20所示,本实施例的网络设备2000包括:处理器2010、存储器2020以及存储在所述存储器2020中并可在所述处理器2010上运行的计算机程序2021。所述处理器2010执行所述计算机程序2021时实现上述建立通信连接的方法各个实施例中的步骤,例如图3所示的步骤s301至s304。或者,所述处理器2010执行所述计算机程序2021时实现上述各装置实施例中各模块/单元的功能,例如图17所示模块1701至1704的功能。

示例性的,所述计算机程序2021可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器2020中,并由所述处理器2010执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序2021在所述网络设备2000中的执行过程。例如,所述计算机程序2021可以被分割成第一连接请求发送模块、第一托管请求接收模块、第一连接断开模块、第二连接维持模块,各模块具体功能如下:

第一连接请求发送模块,用于在接收到第一终端设备发送的第一连接请求时,将所述第一连接请求发送至服务器,以指示所述服务器建立与所述第一终端设备之间的第一通信连接,所述第一通信连接包括所述网络设备与所述第一终端设备之间的第一连接,以及所述网络设备与所述服务器之间的第二连接;

第一托管请求接收模块,用于接收所述第一终端设备针对所述第一通信连接生成的第一托管请求;

第一连接断开模块,用于根据所述第一托管请求,断开所述网络设备与所述第一终端设备之间的第一连接;

第二连接维持模块,用于维持所述网络设备与所述服务器之间的第二连接。

所述网络设备2000可包括,但不仅限于,处理器2010、存储器2020。本领域技术人员可以理解,图20仅仅是网络设备2000的一种示例,并不构成对网络设备2000的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述网络设备2000还可以包括输入输出设备、网络接入设备、总线等。

所述处理器2010可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器2020可以是所述网络设备2000的内部存储单元,例如网络设备2000的硬盘或内存。所述存储器2020也可以是所述网络设备2000的外部存储设备,例如所述网络设备2000上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等等。进一步地,所述存储器2020还可以既包括所述网络设备2000的内部存储单元也包括外部存储设备。所述存储器2020用于存储所述计算机程序2021以及所述网络设备2000所需的其他程序和数据。所述存储器2020还可以用于暂时地存储已经输出或者将要输出的数据。

本申请实施例还公开了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时可实现前述终端设备侧的建立通信连接的方法。

本申请实施例还公开了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时颗实现前述服务器侧的消息推送方法。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的建立通信连接的方法、装置和网络设备,可以通过其他的方式实现。例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其他的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的各个步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到建立通信连接的装置或网络设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

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