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