【技术实现步骤摘要】
【国外来华专利技术】通过基于远程过程调用的通信协议的全双工双向通信、及其应用
技术介绍
超文本传输协议(HTTP)是无状态的远程过程调用(RPC)类型协议,其要求客户端和服务器之间的通信并且遵循严格的请求-响应模式。HTTP将数据从客户端流送到服务器或从服务器流送到客户端。当前,从客户端到服务器和从服务器到客户端的双向流送要求两个传输控制协议(TCP)连接,以分别在客户端和服务器之间流送数据。第一TCP连接由客户端用来将请求流送到服务器,而第二TCP连接由服务器用来将响应流送到客户端。例如,对于客户端到服务器通信,方法包括HangingGET、长轮询、以及轮询。HangingGET方法包括未决(pending)RPC协议,其允许服务器在任何时间将响应数据流送到客户端。来自客户端的请求不包括初始握手请求,并且该请求不包含数据。长轮询方法类似于HangingGET方法,但是来自服务器的响应对于服务器发送至客户端的每条数据被终止。客户端被要求初始化新RPC协议,以接收下一个消息。轮询方法要求客户端通过周期性地生成新RPC协议以从服务器接收数据来轮询服务器。例如,对于服务器到客户端通信,方法包括一次发送一个请求和长期存活的请求。一次发送一个请求方法要求第一请求作为承载应用层协议语义的握手请求被发送。长期存活的请求方法要求单个RPC协议继续将请求数据发送至服务器。当请求数据的流送结束时,RPC协议完成。这些双TCP连接方法是双向的但是不是双工的。这样的双TCP连接方法招致增加的成本,其进而引入增加的开销。增加的TCP连接消耗系统和网络资源。每个都在不同的TCP连接上发生的请求流送和响应流送要 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】2010.11.08 US 61/411,321;2011.09.26 US 13/245,1041.一种用于提供具有全双工能力的客户端设备以经由单个传输控制协议TCP连接使用基于远程过程调用RPC的通信协议建立全双工双向通信流的计算机实现的方法,包括:通过将初始基于RPC的握手发送至服务器,使用所述基于RPC的通信协议通过所述具有全双工能力的客户端设备经由网络通过在所述具有全双工能力的客户端设备和所述服务器之间的所述单个TCP连接发起全双工通信;在所述服务器通过所述单个TCP连接经由所述网络接受所述初始基于RPC的握手之后,使用所述基于RPC的通信协议通过所述具有全双工能力的客户端设备将客户端请求流流送至所述服务器;在所述具有全双工能力的客户端设备通过所述单个TCP连接流送所述客户端请求流的同时,使用所述基于RPC的通信协议通过所述具有全双工能力的客户端设备通过所述单个TCP连接接受来自所述服务器的响应流;以及当所述客户端请求流和所述响应流同时通过所述单个TCP连接通信时,使用所述基于RPC的通信协议通过所述具有全双工能力的客户端设备使能所述全双工双向通信流。2.根据权利要求1所述的方法,进一步包括:当所述客户端请求流和所述响应流两者均已被停止时,使用所述基于RPC的通信协议终止通过所述单个TCP连接与所述服务器的所述全双工通信。3.根据权利要求2所述的方法,进一步包括:使用所述基于RPC的通信协议通过停止所述客户端请求流,终止所述全双工双向通信流;以及使用所述基于RPC的通信协议通过接受所述响应流,通过所述单个TCP连接继续与所述服务器的所述全双工双向通信流。4.根据权利要求1所述的方法,其中,所述基于RPC的通信协议是超文本传输协议HTTP。5.根据权利要求4所述的方法,其中,所述使能包括:当一组基于HTTP的客户端代理和一组基于HTTP的网络代理读取由所述全双工双向通信流使用的所述HTTP时,使能所述全双工双向通信流,其中,所述一组客户端代理和所述一组网络代理被配置成基于由所述全双工双向通信流使用的所述HTTP经过所述全双工双向通信流。6.根据权利要求4所述的方法,其中,所述发起包括:由所述具有全双工能力的客户端设备将基于HTTP的握手发送至能够使用HTTP的服务器以参与与所述具有全双工能力的客户端设备的所述全双工双向通信流。7.一种用于提供具有全双工能力的服务器以经由单个传输控制协议TCP连接使用基于远程过程调用RPC的通信协议建立全双工双向通信流的计算机实现的方法,包括:通过接受来自客户端的初始基于RPC的握手,使用所述基于RPC的通信协议完成经由网络通过在所述具有全双工能力的服务器和所述客户端之间的单个TCP连接的全双工通信;使用所述基于RPC的通信协议通过所述单个TCP连接接受请求流;使用所述基于RPC的通信协议将由所述具有全双工能力的服务器接收的所述请求流传送至服务器应用;使用所述基于RPC的通信协议通过所述单个TCP连接经由所述网络将包括对所述请求流的应用响应的服务器响应流流送至所述客户端;以及当所述服务器响应流和所述请求流同时使用所述单个TCP连接时,使用所述基于RPC的通信协议使能全双工双向通信流。8.根据权利要求7所述的方法,进一步包括:使用所述基于RPC的通信协议拒绝将所述服务器响应流流送至所述客户端,直到所述请求流已被所述具有全双工能力的服务器接受为止;使用所述基于RPC的通信协议通过接受所述请求流,通过所述单个TCP连接继续与所述客户端的所述全双工双向通信流;以及当所述服务器响应流和所述请求流两者均已被停止时,终止通过所述单个TCP连接与所述客户端的所述全双工通信。9.根据权利要求7所述的方法,其中,所述基于RPC的通信协议是超文本传输协议HTTP。10.根据权利要求9所述的方法,其中,所述使能包括:当一组基于HTTP的服务器代理和一组基于HTTP的网络代理读取由所述全双工双向通信流使用的所述HTTP时,使能所述全双工双向通信流,其中,所述一组服务器代理和所述一组网络代理被配置成基于由所述全双工双向通信流使用的所述HTTP经过所述全双工双向通信流。11.根据权利要求9所述的方法,其中,所述完成包括:由所述具有全双工能力的服务器设备将基于HTTP的握手接受发送至能够使用HTTP的客户端以参与与所述具有全双工能力的服务器的所述全双工双向通信流。12.一种用于提供具有全双工能力的客户端设备以经由单个传输控制协议TCP连接通过基于远程过程调用RPC的通信协议建立全双工双向通信流的系统,...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。