发明内容
有鉴于此,本申请所要解决的技术问题是提供了一种基于路由层面的长连接的方法和系统,以解决在基于路由的局域网络环境中长连接由终端建立缺乏统一通讯管理且路由只能建立短连接的问题。
为了解决上述技术问题,本申请公开了一种基于路由层面的长连接的方法,包括:
在基于路由的局域网络中,接收多个终端发送的访问请求,生成至少一个长连接请求发送至服务器;
在所述服务器响应该长连接请求并建立长连接后,将多个所述终端发送的所述访问请求进行协议适配处理通过所述长连接发送至所述服务器中,并通过该长连接接收所述服务器反馈的请求数据;
监测所述终端的访问请求量并结合已建立的所述长连接的传输容量,对该长连接的数量进行控制。
优选地,其中,监测所述终端的访问请求量并结合已建立的所述长连接的传输容量,对该长连接的数量进行控制,进一步为:
当监测到所述终端的所述访问请求量增加且超过当前已建立的所述长连接的最大传输容量时,再次生成一个长连接请求发送至服务器增加一条长连接。
优选地,其中,还包括:当监测到所述终端的所述访问请求量减少,关闭空闲的所述长连接,直到剩余一条所述长连接并保持该长连接不断开。
优选地,其中,还包括:当监测到剩余的一条所述长连接在至少30分钟内无数据传输时,则断开该长连接。
优选地,其中,接收多个终端发送的访问请求,生成至少一个长连接请求发送至服务器,进一步为:
接收位于局域网络中的多个终端所发出的所述访问请求,并统计接收到的所述访问请求所对应的数据量,根据该数据量生成匹配数量的多个长连接请求发送至服务器。
为了解决上述技术问题,本申请还公开了一种基于路由层面的长连接的系统,设置于终端与服务器之间,包括:长连接建立单元、传输单元以及监测控制单元,其中,
所述长连接建立单元,用于在基于路由的局域网络中,接收多个终端发送的访问请求,生成至少一个长连接请求发送至服务器;
所述传输单元,用于在所述服务器响应该长连接请求并建立长连接后,将多个所述终端发送的所述访问请求进行协议适配处理通过所述长连接发送至所述服务器中,并通过该长连接接收所述服务器反馈的请求数据;
所述监测控制单元,用于监测所述终端的访问请求量并结合已建立的所述长连接的传输容量,对该长连接的数量进行控制。
优选地,其中,所述监测控制单元,进一步用于监测到所述终端的所述访问请求量增加且超过当前已建立的所述长连接的最大传输容量时,再次生成一个长连接请求发送至服务器增加一条长连接。
优选地,其中,所述监测控制单元,还用于监测到所述终端的所述访问请求量减少,关闭空闲的所述长连接,直到剩余一条所述长连接并保持该长连接不断开。
优选地,其中,所述监测控制单元,还用于当监测到剩余的一条所述长连接在至少30分钟内无数据传输时,则断开该长连接。
优选地,其中,所述长连接建立单元,进一步用于接收位于局域网络中的多个终端所发出的所述访问请求,并统计接收到的所述访问请求所对应的数据量,根据该数据量生成匹配数量的多个长连接请求发送至服务器。
与现有技术相比,本申请所述的一种基于路由层面的长连接的方法和系统,达到了如下效果:
1)本申请在多个终端构成的局域网络环境中,通过在路由器与服务器之间建立长连接,其长连接支持http、TCP、代理协议等多种通信协议,可以减少连接建立时的握手次数(如:减少建立和关闭tcp连接的次数)以及网络流量,同时,建立的长连接可以根据实际访问请求量进行增加或减少,有效解决了在基于路由的局域网络环境中长连接由终端建立缺乏统一通讯管理且路由只能建立短连接的问题。
2)本申请所建立的长连接在数据通信较少时,至少保持一条长连接,即路由器始终与服务器保持连接,当有终端发出访问请求时,可以立即通过长连接与服务器进行通信交互,而不用重新建立连接,减少后续请求的延时。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
具体实施方式
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
实施例一
如图1所示,为本申请实施例一所述的一种基于路由层面的长连接的方法,该方法包括:
步骤101,在基于路由的局域网络中,接收多个终端发送的访问请求,生成至少一个长连接请求发送至服务器。
上述步骤101中所述的局域网络是基于带有路由功能的网络设备所构成的局域网络,包括但不限于:路由器、Hub(多端口网络转发器)等设备。
用户使用位于该局域网络中的终端(包括:计算机终端、移动终端等,在此不作具体限定)进行互联网操作(如:访问网站、下载数据等)时,运行于终端上的程序或线程,如:浏览器、下载线程,便会发送访问请求,通过路由器访问相应的服务器,在路由器与服务器之间将建立用以传输数据的连接。
对于同一局域网络环境中的多个终端而言,任一终端可能会在任意时刻发出向服务器的访问请求,那么,当路由器接收到任一终端的访问请求后,便立即建立与服务器的长连接,从而将终端的访问请求及时发送至服务器中以获取相应的数据。
需要说明的是,不同终端所发出的访问请求将在服务器中获取不同类型的数据,如:获取某网页的数据以在浏览器中显示该网站页面;获取一段视频数据在终端中缓冲(或下载)以进行播放。而建立的每一条长连接的传输容量有限,在局域网络中的多个终端都获取大量数据的情况下,若只以一条长连接传输,则会导致数据传输效率受到严重影响。所以在上述步骤101中,将生成至少一个长连接请求发送至服务器,以建立至少一条长连接。在实际应用中,初始建立的长连接的数量将根据不同终端所放出的访问请求所对应的数据量而决定,访问请求中通常含有对应的数据的标识,通过标识,并可以获知需要传输的数据量。
步骤102,在所述服务器响应该长连接请求并建立长连接后,将多个所述终端发送的数据信息通过所述长连接分别发送至所述服务器中,并通过该长连接接收所述服务器反馈的通信数据。
在局域网络中,由于各终端通信传输的需要,其发出的访问请求类型是多样的:可以是基于http(Hypertext transfer protocol,超文本传输协议)的连接请求,也可以是基于TCP的连接请求,或者是基于代理协议的连接请求等等。通过在路由器和服务器之间的长连接,各终端所发出的不同类型的访问请求均在长连接中实现通信传输,从而避免了每一类型的访问请求分别向服务器进行多次握手(连接建立过程中的一种交互方式)。
通信传输过程中,以一条长连接为例,在该长连接传输容量允许的情况下,不同终端所发送的数据信息将在该长连接内并行传输,作为另一种方式,数据信息也可以按照不同终端所发出的访问请求的时间顺序进行传输,只有在访问请求量超过一条长连接的最大传输容量时,建立新的长连接;服务器所反馈的通信数据将根据不同的访问请求的处理速度来决定传输顺序,即服务器建立传输队列,对于先处理完成的访问请求,服务器将该访问请求所对应的通信数据优先通过该长连接进行传输,其他访问请求所对应的通信数据根据处理完成的顺序依次排列传输。
步骤103,监测所述终端的访问请求量并结合所述长连接的传输容量,对已建立的所述长连接的数量进行控制。
终端所发出的访问请求具有随机性,可能出现在某一时间段进行大量访问请求或是在某一时间段内无任何访问请求的情况。对于终端在某一时间段内发出大量访问请求的情况,初始建立的长连接不足以将所有的访问请求一并传输,所以为了不耽误传输进度,将长连接的数量;对于终端在某一时间段内无任何访问请求的情况(如在夜间,终端均不工作),若还持续保持多条长连接,那么必然会浪费网络带宽,也增加路由器的工作负荷,所以将减少长连接的数量,甚至完全断开长连接。对于上述控制方式,在实际应用中可以根据需要进行调整设置,并不限于以上描述的情况。
通过本实施例的上述步骤,可以在路由器与服务器之间建立长连接,其长连接支持http、TCP、代理协议等多种通信协议,可以减少连接建立时的握手次数(如:减少建立和关闭tcp连接的次数)以及网络流量;同时,由于长连接的持续特性,也可以减少后续请求的延时。
实施例二
如图2所示,为本申请实施例二所述的一种基于路由层面的长连接的方法,该方法包括:
步骤201,接收位于局域网络中的多个终端所发出的基于http和TCP协议的访问请求,并统计接收到的所述访问请求所对应的数据量,根据该数据量生成匹配数量的长连接请求发送至服务器。
初始建立的长连接的数量将根据不同终端所放出的访问请求所对应的数据量而决定,虽然各终端发出的访问请求的类型不同,但访问请求通常以消息串的方式展现,通过读取位于消息串头部的 Content-Length (连接长度,表示需要传输的数据量),便可以获知当前访问请求所需要传输的数据量。
步骤202,在建立对应数量的长连接后,将不同的访问请求进行协议适配处理使不同访问请求对应的数据在长连接中传输,并实时监测终端的访问请求量。
协议适配处理使得基于不同协议的访问请求所对应的数据可以在同一长连接中传输,在本实施例中的一种方式下,无论各终端发出的不同协议的访问请求(如:http长连接、http短连接、SPDY协议等),均在基于TCP协议建立的长连接中传输,只是在TCP长连接中将不同协议设置成不同的通道,从而,多协议的访问请求所对应的数据便可以在各自的传输通道中传输。
步骤203,当监测到终端的访问请求量增加,且超过当前的长连接的最大传输容量时,再次生成一个长连接请求发送至服务器,并在增加的长连接建立后,一并进行数据传输。
步骤204,当监测到终端的访问请求量减少,关闭空闲的长连接,并至少保持一条长连接不断开。
对于步骤204,当监测到所保持的至少一条长连接在至少30分钟内无数据传输时,则断开与所述服务器的连接。也就是说,在有多条长连接的情况下,将根据终端的访问请求量的大小对长连接的数量进行控制;对于所保持的一条长连接而言,将根据终端在一定时间段内是否有访问请求对该长连接进行关断控制。
实施例三
下面结合图3,对所述基于路由层面的长连接的方法的具体应用进行详细说明:
由终端1、终端2……终端N等N个终端构成局域网络,并通过Hub Layer(多服务请求统一转发器层)建立与云端服务器的连接,其中,Hub Layer可以是具有路由功能的设备(如:路由器),也可以是具有路由功能的软件,在本实施例中以路由器为例。
N个终端分别发出不同类型的访问请求:终端1的访问请求为http短连接请求、终端2的访问请求为http长连接请求、终端3的访问请求为SPDY协议请求、终端4的访问请求为TCP连接请求、终端5的访问请求为代理协议请求、终端N的访问请求为基于TCP的连接协议请求。上述请求均发送至路由器中,并由路由器建立与云端服务器的长连接,本实施例中的长连接为TCP长连接,所以,路由器将对接收到的不同终端所发出的不同访问请求进行协议适配处理,以在当前的TCP长连接中传输。
TCP长连接的数量可以根据访问请求所对应的数据量决定,也可以预先进行设置,如:4台终端共用一条长连接。路由器会监测终端的访问请求量,以对长连接的数量进行控制。
云端服务器分别接收不同终端的访问请求后将进行协议解析,之后对解析得到的不同访问请求进行处理,由于不同的访问请求所访问获取的数据不同,如:只获取网站页面的显示内容和获取一段视频数据,因此服务器对不同访问请求的处理速度也不相同,服务器将优先处理完成的访问请求所对应的数据通过长连接反馈至路由器中,在由路由器发送至对应的终端。
需要说明的是,在路由器将不同终端的访问请求发送至云端服务器的过程中,其遵循的发送方式为先接收先发送,即按照接收的访问请求的时间顺序进行发送。
此外,路由器对不同终端的访问请求可以进行加密、压缩处理,不仅增强了数据传输的安全性,也增加了数据的传输特性。
路由器监测到N个终端的访问请求量增加时,便可以增加长连接的数量;监测到N个终端的访问请求量减少时,关闭空闲的长连接,直到保留一条长连接,长连接的数量减少为一条后,路由器继续监测N个终端的访问请求,只有当30分钟无任何终端发出访问请求时,才将该长连接关闭,即断开与云端服务器的连接。
实施例四
如图4所示,为本申请实施例四所述的一种基于路由层面的长连接的系统,设置于终端与服务器之间,该系统包括:长连接建立单元401、传输单元402以及监测控制单元403,其中,
所述长连接建立单元401,分别与多个终端、传输单元402以及服务器相耦接,用于在基于路由的局域网络中,接收多个终端发送的访问请求,生成至少一个长连接请求发送至服务器。
所述传输单元402,分别与多个终端、长连接建立单元401以及服务器相耦接,用于在所述服务器响应该长连接请求并建立长连接后,将多个所述终端发送的所述访问请求进行协议适配处理通过所述长连接发送至所述服务器中,并通过该长连接接收所述服务器反馈的请求数据。
所述监测控制单元403,与长连接建立单元401相耦接,用于监测所述终端的访问请求量并结合已建立的所述长连接的传输容量,对该长连接的数量进行控制。
不同终端所发出的访问请求将在服务器中获取不同类型的数据,如:获取某网页的数据以在浏览器中显示该网站页面;获取一段视频数据在终端中缓冲(或下载)以进行播放。而建立的每一条长连接的传输容量有限,在局域网络中的多个终端都获取大量数据的情况下,若只以一条长连接传输,则会导致数据传输效率受到严重影响。所以所述监测控制单元403,具体用于监测到所述终端的所述访问请求量增加且超过当前已建立的所述长连接的最大传输容量时,再次生成一个长连接请求发送至服务器增加一条长连接。
在实际应用中,初始建立的长连接的数量将根据不同终端所放出的访问请求所对应的数据量而决定,访问请求中通常含有对应的数据的标识,通过标识,并可以获知需要传输的数据量。
所述监测控制单元403,还用于监测到所述终端的所述访问请求量减少,关闭空闲的所述长连接,直到剩余一条所述长连接并保持该长连接不断开。对于剩余的一条长连接而言,当监测控制单元403监测到剩余的一条所述长连接在至少30分钟内无数据传输时,则断开该长连接。也就是说,在有多条长连接的情况下,将根据终端的访问请求量的大小对长连接的数量进行控制;对于所保持的一条长连接而言,将根据终端在一定时间段内是否有访问请求对该长连接进行关断控制。
初始建立的长连接的数量将根据不同终端所放出的访问请求所对应的数据量而决定,虽然各终端发出的访问请求的类型不同,但访问请求通常以消息串的方式展现,通过读取位于消息串头部的 Content-Length (连接长度,表示需要传输的数据量),便可以获知当前访问请求所需要传输的数据量。所以,所述长连接建立单元401,用于接收位于局域网络中的多个终端所发出的所述访问请求,并统计接收到的所述访问请求所对应的数据量,根据该数据量生成匹配数量的多个长连接请求发送至服务器。
由于方法部分已经对本申请实施例进行了详细描述,这里对实施例中涉及的系统与方法对应部分的展开描述省略,不再赘述。对于系统中具体内容的描述可参考方法实施例的内容,这里不再具体限定。
与现有技术相比,本申请所述的一种基于路由层面的长连接的方法和系统,达到了如下效果:
1)本申请在多个终端构成的局域网络环境中,通过在路由器与服务器之间建立长连接,其长连接支持http、TCP、代理协议等多种通信协议,可以减少连接建立时的握手次数(如:减少建立和关闭tcp连接的次数)以及网络流量,同时,建立的长连接可以根据实际访问请求量进行增加或减少,有效解决了在基于路由的局域网络环境中长连接由终端建立缺乏统一通讯管理且路由只能建立短连接的问题。
2)本申请所建立的长连接在数据通信较少时,至少保持一条长连接,即路由器始终与服务器保持连接,当有终端发出访问请求时,可以立即通过长连接与服务器进行通信交互,而不用重新建立连接,减少后续请求的延时。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者系统中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。