一种网关握手、通信方法、网关及Web通信系统的制作方法

文档序号:7886759阅读:240来源:国知局
专利名称:一种网关握手、通信方法、网关及Web通信系统的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种网关握手、通信方法、网关及Web通信系统。
技术背景
随着互联网技术的发展,很多实时的,事件驱动的万维网(World Wide Web, Web) 应用,比如Web实时协作、Web多人游戏、Web实时数据推送等,都要求Web的通信节点之间直接进行实时全双工(Full Duplex)通信,即同步进行数据发送和数据接收。
由于Web的通信节点往往都位于防火墙之后,相互之间并不可见,它们之间的通信需要通过中继服务器实现,而中继服务器作为通信中介或者网关,在支持Web浏览器之间或者是Web浏览器与局域网内的后端服务器之间的实时交互时,一般采用基于HTTP协议的技术进行通信,如轮询技术(Polling)或服务器推技术(Comet)等,其中,Polling技术只能支持半双工通信,而Comet采用分别用于上行数据流和下行数据流的两个连接来模拟全双工通信,需要耗费双倍的Web应用服务器资源,效率低下,简而言之,基于HTTP协议的技术并非为了实现实时全双工通信而设计,因此,传统的中继服务器无法支持Web浏览器之间,或者Web浏览器与后端服务器之间,进行直接全双工的高效通信,以实现实时交互数据。发明内容
本发明的主要目的在于提供一种网关握手、通信方法、网关及Web系统,以支持 Web浏览器之间,或者Web浏览器与后端服务器之间,通过网关进行直接全双工的高效通信,以实现实时数据交互。
为了实现上述目的,本发明采用的技术方案如下
一种网关握手的方法,包括
网关接收网页Web浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器的地址信息;
所述网关根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议ffebsocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道;
所述网关将所述Web浏览器的地址信息保存到存储介质中。
一种网关的通信方法,包括
网关接收第一 Web浏览器发送给第二 Web浏览器的数据包,所述数据包中携带有应用数据及所述第二 Web浏览器的地址信息;
所述网关查询存储介质,找到与所述第二 Web浏览器的地址信息相匹配的网页套接字协议Websocket数据传输通道;
所述网关通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二 Web浏览器。5
一种网关的通信方法,包括
网关接收Web浏览器发送给后端服务器的数据包,所述数据包中携带有应用数据及所述后端服务器的地址信息;
所述网关根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于传输控制协议TCP连接的数据传输通道,并将所述后端服务器的地址信息保存到存储介质中;
所述网关通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器。
一种网关,包括协议引擎模块及存储介质,所述协议引擎模块包括
请求接收单元,用于接收Web浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器的地址信息;
协议转换单元,用于根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议ffebsocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道;
存储单元,用于将所述Web浏览器的地址信息保存到所述存储介质中。
一种网关,包括接收模块、转发模块及存储介质;
所述接收模块用于接收第一 Web浏览器发送给第二 Web浏览器的数据包,所述数据包中携带有应用数据及所述第二 Web浏览器的地址信息;
所述存储介质保存有与所述网关建立有网页套接字协议Websocket数据通道的 Web浏览器的地址信息;
所述转发模块用于查询所述存储介质,找到与所述第二 Web浏览器的地址信息相匹配的Websocket数据传输通道,并通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二 Web浏览器。
一种网关,包括接收模块、其他TCP协议收发模块及存储介质;
所述接收模块用于接收Web浏览器发送给后端服务器的数据包,所述数据包中携带有应用数据及所述后端服务器的地址信息;
所述其他TCP协议收发模块,用于根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于TCP连接的数据传输通道,并通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器,所述其他TCP协议收发模块还用于将所述后端服务器的地址信息保存到所述存储介质中。
一种Web通信系统,包括网关,后端服务器;
所述网关包括协议引擎模块、接收模块、转发模块及存储介质;
所述协议引擎模块包括
请求接收单元,用于分别接收第一 Web浏览器、第二 Web浏览器、第NWeb浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述第一 Web浏览器、所述第二 Web浏览器或所述第NWeb浏览器的地址信息,其中,N为自然数;
协议转换单元,用于根据所述协议升级请求,分别将所述第一 Web浏览器、所述第二 Web浏览器和/或所述第NWeb浏览器与所述网关之间的应用层传输协议由超文本传输协议HTTP改为网页套接字协议ffebsocket,使所述第一 Web浏览器、所述第二 Web浏览器和/或所述第NWeb浏览器与所述网关之间建立Websocket数据传输通道;
存储单元,用于将所述第一 Web浏览器、所述第二 Web浏览器和/或所述第NWeb 浏览器的地址信息保存到所述存储介质中;
所述接收模块,用于接收所述第一 Web浏览器发送给目标节点的数据包,所述数据包中携带有应用数据及所述目标节点的地址信息;
所述转发模块,用于当所述目标节点为所述第二 Web浏览器时,查询所述存储介质,找到与所述第二 Web浏览器的地址信息相匹配的Websocket数据传输通道,并通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二 Web浏览器。
采用本发明的技术方案,可以在网关与Web浏览器之间建立一个Websocket连接, 即一个全双工的Websocket数据传输通道,以支持Web浏览器之间,或者Web浏览器与局域网内的后端服务器之间,通过网关进行直接全双工的高效通信,以实时交互数据。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种网关握手的方法流程图2为本发明实施例一提供的网关握手方法中网关获取并保存握手消息携带的 Web浏览器的地址信息的示意图3为本发明实施例二提供的一种Web浏览器之间通信的方法流程图4为本发明实施例三提供的一种Web浏览器与后端服务器通信的方法流程图5为本发明实施例四提供的一种网关示意图6为本发明实施例五提供的一种网关示意图7为本发明实施例六提供的一种网关示意图8为本发明实施例七提供的一种一种Web通信系统示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本领域一般技术人员更好的了解本发明实施例提供的技术方案,对万维网 (World Wide Web, Web)通信中采用的超文本传输协议(Hyper Text Transfer Protocol, HTTP)以及网页套接字(Websocket)的通信机制分别做简要的介绍
HTTP协议是互联网上应用最为广泛的一种网络协议,HTTP协议定义了 Web客户端与Web应用服务器请求和应答的标准,所有的Web文件都必须遵守这个标准。
基于HTTP协议的Web客户端/应用服务器请求响应机制的信息交换过程包括四个步骤
(1)建立连接Web客户端与Web应用服务器的指定端口(对于HTTP默认端口为80,对于具有安全性的HTTPS,默认端口为443)建立TCP (Transmission Control I^otocol,传输控制协议)连接。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接,因此,首先要建立TCP连接;
(2)发送请求建立一个TCP连接后,Web客户端把请求消息送到Web应用服务器的相应端口上,请求消息包含请求的方法、URL、协议版本、请求头部以及请求数据等,完成请求动作提交;
(3)发送响应Web应用服务器在处理完Web客户端请求之后,要向Web客户端发送响应消息响应消息的内容包括消息协议的版本、成功或者错误编码加上包含Web应用服务器信息、实体元信息以及可能的实体内容;
(4)关闭连接Web客户端和Web应用服务器双方都可以通过关闭套接字来结束 TCP/IP 对话。
基于HTTP协议的通信技术存在以下缺点
1)无法实现点对点的全双工通信。由于传统的HTTP轮询是半双工,而基于HTTP 协议的Comet技术需要在两条连接上实现双向通信,都无法支持通过一个连接实现点对点的全双工的实时通信;
2)资源浪费严重。由于采用的HTTP协议所承载的信息往往只有几个字节,而HTTP 头过大(近1K),即无效信息载荷多,因此,频繁的轮询造成系统带宽消耗大、延迟高,效率低下。
Websocket是HTML5中定义的一种新的协议,支持Web客户端与Web应用服务器之间通过一个Websocket连接进行全双工的高效通信。Websocket有着兼容HTTP的握手机制,可以共享默认的HTTP与HTTPS端口(80和44 ,Websocket的通信机制如下
(1)握手
Web客户端可以通过给Web应用服务器发送握手消息,将Web客户端与Web应用服务器之间的HTTP协议提升为Websocket协议以建立Websocket连接,具体的,Web客户端 (example, com)给 Web 应用服务器(server, example, com)发送一个 HTTP Upgrade 请求,例如
GET/chat HTTP/1. 1
Host server, example, com
Upgrade :websocket
Connection Upgrade
Sec-WebSocket-Key :dGhlIHNhbXBsZSBub25 jZQ ==
Sec-WebSocket-Origin :http://example, com
Sec-ffebSocket-Protocol:chat, superchat
(\r\n)
其中,Host为Web应用服务器主机,Upgrade为协议升级类型,Connection为连接类型,Key为安全认证密钥,Origin为请求来源,Protocol为可选的子协议名称;
Web应用服务器接受HTTP Upgrade请求,并返回响应消息给Web客户端,如
HTTP/1. IlOlffebSocket Protocol Handshake
Upgrade :WebSocket
Connection Upgrade
Sec-WebSocket-Origin :http://example, com
Sec-ffebSocket-Location :ws -.//example, com/demo
Sec-ffebSocket-Protocol :sample
8jKS,y :G*Co,Wxa-
其中,101为HTTP响应状态码(101 客户要求服务器根据请求转换HTTP协议版本),Origin必须等于HTTP Upgrade请求的来源,Location必须等于HTTP Upgrade请求的地址,Protocol必须包含HTTP Upgrade请求的子协议名,“8jKS,y :G*Co,Wxa-"为把由 HTTP Upgrade请求中的Key构造的16字节的数据,进行MD5加密得到一个16字节的值;
(2)数据传输
Websocket连接建立之后,Websocket数据帧就可以以全双工的模式在Web客户端和Web应用服务器之间来回传输。
实施例一
图1为本发明实施例一提供的一种网关握手的方法流程图。
如图1所示,本发明实施例一的网关握手的方法包括
S101,网关接收网页Web浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器的地址信息。
需要说明的是,所述协议升级请求一般为一个HTTP GET请求,具体的例子可以为如下代码所示
GET/real-time HTTP/1. l\r\n
Upgrade :WebSocket\r\n
Connection :Upgrade\r\n
. . . \r\n
可以在所述HTTP GET请求中,通过新增信元的方式携带所述Web浏览器的地址信肩、ο
S102,所述网关根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议ffebsocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道。
需要说明的是,所述网关将HTTP协议升级为Websocket协议之后,还可以返回响应消息给所述Web浏览器。
所述响应消息具体可以为所述WebSocket网关对所述协议升级请求作出的HTTP 响应的消息,所述响应消息的一个例子可以为如下代码所示
HTTP/1. IlOlffebSocket Protocol Handshake\r\n Upgrade :WebSocket\r\n Connection :Upgrade\r\n ...\r\nS103,所述网关将所述Web浏览器的地址信息保存到存储介质中。具体而言,所述存储介质可以为非易失性的持久存储介质,进一步地,所述网关可9以在所述存储介质中建立一个初始化的转发表,握手时读取的所述Web浏览器的地址信息,并更新到所述转发表中。
需要说明的是,本实施例中S102和S103的顺序不应用于限制本发明,S102和 S103可以为并行处理,或者S103还可以先于S102处理。
本实施例的方法中,网关可以通过与有通信需求的Web浏览器逐一握手,分别与各个Web浏览器建立Websocket连接,同时获取并保存各个Web浏览器的地址信息,网关可以根据其中任一个Web浏览器的地址信息,找到网关与该Web浏览器的Websocket连接,以便于进一步发送数据给浏览器或者后端服务器。
具体地,在S103中,参见图2,所述Web浏览器的地址信息可以包括用户组标识 ID,用户ID,网络协议IP地址及端口,其中,所述用户组ID为所述Web浏览器所在的通信群组标识,具体而言,通信群组可以与腾讯的即时聊天工具QQ中的群组概念类似,所述用户 ID是所述Web浏览器的身份标识,不同用户ID的Web浏览器只有在用户组ID相同时才可以相互通信。
进一步地,本实施例中,还包括
S104,所述网关关闭所述Web浏览器与所述网关之间的所述Websocket数据传输通道。
具体地,当所述网关与所述Web浏览器之间的Websocket连接长时间不使用,或者出现异常情况,例如遭受网络攻击时,可以关闭所述Web浏览器与所述网关之间的所述 Websocket数据传输通道,具体而言,关闭所述Web浏览器与网关所述之间传输层的TCP连接,有利于节省网络资源。
实施例二
基于实施例一所述的网关握手的方法,如图3所示,本发明实施例二提供了一种网关的通信方法,包括如下步骤
S201,网关接收第一 Web浏览器发送给第二 Web浏览器的数据包,所述数据包中携带有应用数据及所述第二 Web浏览器的地址信息。
其中,所述第一 Web浏览器作为通信发起节点,所述第二浏览器作为通信目标节点ο
需要说明的是,所述数据包中的所述应用数据,是按照Websocket协议规定的数据格式构造并封装的,所述应用数据可以以数据帧的形式进行传输。
需要进一步说明的是,所述数据包中一般是将第二 Web浏览器的地址信息封装为一个头文件再进行传输,所述网关通过对该头文件进行解析,得到所述第二 Web浏览器的地址信息;本领域技术人员应当知道,OSI (Open System hterconnection,开放系统互连) 把网络从逻辑上分为了七层,分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,OSI七层模型是一种框架性的设计方法,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,以帮助不同类型的通信节点实现数据传输,当通信节点的应用层的数据发送给目标节点时,会将数据逐层封装成数据包后,通过传输介质发送给目标节点,因此,网关通过对数据包进行解析,具体而言,可以对数据包的头文件进行七层分析,从而获取目标节点的地址信息,根据目标节点的地址信息,还可以判断目标节点为 Web浏览器,还是局域网内的后端服务器。
S202,所述网关查询存储介质,找到与所述第二 Web浏览器的地址信息相匹配的 Websocket数据传输通道。
具体地,所述网关将所述第二 Web浏览器的地址信息,与所述网关的存储介质中保存的各个Web浏览器的地址信息进行比对,例如,通过查询转发表,找到所述第二 Web浏览器所在的Websocket数据传输通道。
S203,所述网关通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二 Web浏览器。
需要说明的是,所述第二 Web浏览器接收到所述应用数据后,还可以通过网关给所述第一 Web浏览器返回送达确认消息。
本实施例的方法中,当两个Web浏览器之间通信时,网关通过将作为通信目标节点的第二 Web浏览器的地址信息与事先保存在存储介质中的各个Web浏览器的地址信息进行比对,可以找到第二 Web浏览器所在的Websocket数据传输通道,并通过该Websocket数据传输通道,从而实现两个Web浏览器之间基于Websocket协议的实时的全双工高效通信。
具体地,所述第二 Web浏览器的地址信息可以包括用户组ID、用户ID、IP地址及端□。
实施例三
基于实施例一的网关握手方法,如图4所示,本发明实施例三还提供了一种网关的通信方法,包括如下步骤
S301,网关接收Web浏览器发送给后端服务器的数据包,所述数据包中携带有应用数据及所述后端服务器的地址信息。
需要说明的是,所述后端服务器是用于向所述Web浏览器提供网上信息浏览等服务的Web应用服务器,所述后端服务器位于防火墙之后且与所述网关处于同一个局域网内;进一步需要说明的是,所述应用数据是按照Websocket协议规定的数据格式构造并封装的,所述应用数据可以以数据帧的形式进行传输。
S302,所述网关根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于传输控制协议TCP连接的数据传输通道,并将所述后端服务器的地址信息保存到存储介质中。
具体地,所述后端服务器的地址信息可以包括协议类型,服务器IP地址及服务器端口,其中,所述协议类型为所述网关与所述后端服务器建立TCP连接时,所采用的TCP/ IP协议的类型,所述网关按照所述地址信息指定的所述后端服务器的IP及端口,在所述网关与所述后端服务器之间建立基于传输控制协议TCP连接的数据传输通道,其上层的应用层传输协议为所述协议类型给出的TCP/IP协议。
进一步地,所述网关与所述后端服务器之间建立基于传输控制协议TCP连接的数据传输通道之后,可以保持所述TCP连接长时间不关闭,使得后续的其他Web浏览器给所述后端服务器发送数据包时,可以查询存储介质得到所述网关与所述后端服务器之间建立的基于TCP连接的数据传输通道,实现其它Web浏览器与所述后端服务器之间的实时的双工ififn。
S303,所述网关通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器。
需要说明的是,所述后端服务器接收到所述应用数据后,还可以通过所述网关给所述Web浏览器返回送达确认消息。
本实施例中,网关通过获取Web浏览器发送的数据包中的后端服务器地址信息, 与后端服务器建立TCP连接后,网关可以保持该TCP长时间不关闭,从而实现Web浏览器与后端服务器之间的全双工高效通信。
实施例四
如图5所示,基于实施例一的网关握手方法,本发明实施例四提供了一种网关,包括协议引擎模块1及存储介质2,所述协议引擎模块1包括
请求接收单元101,用于接收Web浏览器6的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器6的地址信息;
协议转换单元102,用于根据所述协议升级请求,将所述Web浏览器6与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议ffebsocket,使所述Web浏览器6与所述网关之间建立Websocket数据传输通道;
存储单元103,用于将所述Web浏览器6的地址信息保存到所述存储介质2中。
本实施例中的网关,通过与有通信需求的Web浏览器逐一握手,分别与各个Web浏览器建立Websocket数据传输通道,同时还获取并保存各个Web浏览器的地址信息,网关可以根据其中任一个Web浏览器的地址信息,查询存储介质,找到网关与该Web浏览器的 Websocket数据传输通道,有利于实现Web浏览器之间或者Web浏览器与后端服务器的全双工高效通信。
本实施例中,具体地,所述存储介质2保存的所述Web浏览器6的地址信息可以包括用户组标识ID、用户ID、网络协议IP地址及端口。
本实施例中,具体地,所述存储介质2可以为非易失性存储器,所述非易失性存储器在电源供应中断后,保存的数据不会消失。
本实施例中,进一步地,所述协议引擎模块1还可以包括
监控单元104,用于关闭所述Web浏览器6与所述网关之间的W^ebsocket连接。
需要说明的是,当所述网关与所述Web浏览器6之间的Websocket连接长时间不使用,或者出现异常情况,例如遭受网络攻击时,可以关闭所述Web浏览器6与网关所述之间传输层的TCP连接,且有利于节省网络资源。
实施例五
如图6所示,基于实施例二的网关通信方法,本发明提供了一种网关装置,包括 接收模块3、转发模块4及存储介质2 ;
所述接收模块3用于接收第一 Web浏览器601发送给第二 Web浏览器602的数据包,所述数据包中携带有应用数据及所述第二 Web浏览器602的地址信息;
所述存储介质2保存有与所述网关建立有Websocket数据通道的Web浏览器的地址信息;
所述转发模块4用于查询所述存储介质2,找到与所述第二 Web浏览器602的地址信息相匹配的Websocket数据传输通道,并通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二 Web浏览器602。
本实施例中,当两个Web浏览器之间通信时,网关通过将作为通信目标节点的第二 Web浏览器的地址信息与事先保存在存储介质中的各个Web浏览器的地址信息进行比对,可以找到第二 Web浏览器所在的Websocket数据传输通道,通过该Websocket数据传输通道,可以实现两个Web浏览器之间的全双工的高效通信。
本实施例中,具体地,所述存储介质2可以为非易失性存储器,所述非易失性存储器在电源供应中断后,保存的数据不会消失。
实施例六
如图7所示,基于实施例三的网关通信方法,本发明还提供了一种网关,包括接收模块3、其他TCP协议收发模块5及存储介质;
所述接收模块用于接收Web浏览器发送给后端服务器的数据包,所述数据包中携带有应用数据及所述后端服务器的地址信息;
所述其他TCP协议收发模块,用于根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于TCP连接的数据传输通道,并通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器,所述其他TCP协议收发模块还用于将所述后端服务器的地址信息保存到所述存储介质中。
本实施例中,网关通过获取Web浏览器发送给后端服务器的数据包中的地址信息,与后端服务器建立TCP连接后,网关可以保持该TCP长时间不关闭,从而实现Web浏览器与后端服务器之间的全双工的高效通信。
实施例七
如图8所示,本发明实施例七提供了一种Web通信系统,包括网关,后端服务器 7 ;
所述网关包括协议引擎模块1、接收模块3、转发模块4、其他TCP协议收发模块5 及存储介质2 ;
所述协议引擎模块1包括
请求接收单元101,用于分别接收第一 Web浏览器601,第二 Web浏览器602及第 NWeb浏览器603的握手消息,所述握手消息中携带有协议升级请求以及所述第一 Web浏览器601、所述第二 Web浏览器602或所述第NWeb浏览器603的地址信息,其中,N为自然数;
协议转换单元102,用于根据所述协议升级请求,分别将所述第一 Web浏览器601、 所述第二 Web浏览器602和/或所述第NWeb浏览器603与所述网关之间的应用层传输协议由超文本传输协议HTTP改为网页套接字协议ffebsocket,使所述第一 Web浏览器601、所述第二 Web浏览器602和/或所述第NWeb浏览器603与所述网关之间建立Websocket数据传输通道;
存储单元103,用于将所述第一 Web浏览器601、所述第二 Web浏览器602和/或所述第NWeb浏览器603的地址信息保存到所述存储介质2中;
所述接收模块3,用于接收所述第一 Web浏览器601发送给目标节点的数据包,所述数据包中携带有应用数据及所述目标节点的地址信息;
所述转发模块4,用于当所述目标节点为所述第二 Web浏览器602时,查询所述存储介质2,找到与所述第二 Web浏览器602的地址信息相匹配的Websocket数据传输通道, 并通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二 Web浏览器 602 ;CN 102546800 A
所述其他TCP协议收发模块5,用于当所述目标节点为所述后端服务器7时,根据所述后端服务器7的地址信息,在所述网关与所述后端服务器7之间建立基于TCP连接的数据传输通道,并通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器7 ;所述其他TCP协议收发模块5还用于将所述后端服务器7的地址信息保存到所述存储介质2中。
本实施例的Web通信系统中,通过网关与Web浏览器建立Wiebsocket连接,并获取和保存Web浏览器的地址信息,可以实现Web浏览器之间,以及Web浏览器到后端服务器之间的全双工高效通信。
需要说明的是,上述实施例一至实施例七中的相应技术特征可以相互参考。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种网关握手的方法,其特征在于,包括网关接收网页Web浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述 Web浏览器的地址信息;所述网关根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议, 由超文本传输协议HTTP改为网页套接字协议ffebsocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道;所述网关将所述Web浏览器的地址信息保存到存储介质中。
2.权利要求1所述的方法,其特征在于,所述Web浏览器的地址信息包括用户组标识 ID、用户ID、网络协议IP地址及端口。
3.权利要求1或2所述的方法,其特征在于,所述方法还包括 所述网关关闭所述Websocket数据传输通道。
4.一种网关的通信方法,其特征在于,包括网关接收第一 Web浏览器发送给第二 Web浏览器的数据包,所述数据包中携带有应用数据及所述第二 Web浏览器的地址信息;所述网关查询存储介质,找到与所述第二 Web浏览器的地址信息相匹配的网页套接字协议Websocket数据传输通道;所述网关通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二 W^eb浏览器。
5.权利要求4所述的方法,其特征在于,所述第二Web浏览器的地址信息包括用户组 ID、用户ID、IP地址及端口。
6.一种网关的通信方法,其特征在于,包括网关接收Web浏览器发送给后端服务器的数据包,所述数据包中携带有应用数据及所述后端服务器的地址信息;所述网关根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于传输控制协议TCP连接的数据传输通道,并将所述后端服务器的地址信息保存到存储介质中;所述网关通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器。
7.如权利要求6所述的通信方法,其特征在于,所述后端服务器的地址信息包括协议类型、服务器IP地址及服务器端口。
8.—种网关,其特征在于,包括协议引擎模块及存储介质,所述协议引擎模块包括 请求接收单元,用于接收Web浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器的地址信息;协议转换单元,用于根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议ffebsocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道;存储单元,用于将所述Web浏览器的地址信息保存到所述存储介质中。
9.如权利要求8所述的网关,其特征在于,保存到所述存储介质中的所述Web浏览器的地址信息包括用户组ID、用户ID、IP地址及端口。
10.如权利要求8或9所述的网关,其特征在于,所述存储介质为非易失性存储器。
11.如权利要求8至10任一所述的网关,其特征在于,所述协议引擎模块还包括 监控单元,用于关闭所述Websocket数据传输通道。
12.一种网关,其特征在于,包括接收模块、转发模块及存储介质;所述接收模块用于接收第一 Web浏览器发送给第二 Web浏览器的数据包,所述数据包中携带有应用数据及所述第二 Web浏览器的地址信息;所述存储介质保存有与所述网关建立有网页套接字协议Websocket数据通道的Web浏览器的地址信息;所述转发模块用于查询所述存储介质,找到与所述第二 Web浏览器的地址信息相匹配的Websocket数据传输通道,并通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二 Web浏览器。
13.—种网关,其特征在于,包括接收模块、其他TCP协议收发模块及存储介质;所述接收模块用于接收Web浏览器发送给后端服务器的数据包,所述数据包中携带有应用数据及所述后端服务器的地址信息;所述其他TCP协议收发模块,用于根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于TCP连接的数据传输通道,并通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器,所述其他TCP协议收发模块还用于将所述后端服务器的地址信息保存到所述存储介质中。
14.一种Web通信系统,其特征在于,包括网关,后端服务器; 所述网关包括协议引擎模块、接收模块、转发模块及存储介质; 所述协议引擎模块包括请求接收单元,用于分别接收第一 Web浏览器、第二 Web浏览器、第NWeb浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述第一 Web浏览器、所述第二 Web浏览器或所述第NWeb浏览器的地址信息,其中,N为自然数;协议转换单元,用于根据所述协议升级请求,分别将所述第一 Web浏览器、所述第二 Web浏览器和/或所述第NWeb浏览器与所述网关之间的应用层传输协议由超文本传输协议 HTTP改为网页套接字协议ffebsocket,使所述第一 Web浏览器、所述第二 Web浏览器和/或所述第NWeb浏览器与所述网关之间建立Websocket数据传输通道;存储单元,用于将所述第一 Web浏览器、所述第二 Web浏览器和/或所述第NWeb浏览器的地址信息保存到所述存储介质中;所述接收模块,用于接收所述第一 Web浏览器发送给目标节点的数据包,所述数据包中携带有应用数据及所述目标节点的地址信息;所述转发模块,用于当所述目标节点为所述第二 Web浏览器时,查询所述存储介质,找到与所述第二 Web浏览器的地址信息相匹配的Websocket数据传输通道,并通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二 Web浏览器。
15.如权利要求14所述的通信系统,其特征在于,所述网关还包括其他TCP协议收发模块;所述其他TCP协议收发模块,用于当所述目标节点为所述后端服务器时,根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于TCP连接的数据传输通道,并通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器。
16.如权利要求15所述的通信系统,其特征在于,所述其他TCP协议收发模块还用于将所述后端服务器的地址信息保存到所述存储介质中。
全文摘要
本发明实施例公开一种网关握手的方法包括网关接收网页Web浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器的地址信息;所述网关根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议Websocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道;所述网关将所述Web浏览器的地址信息保存到存储介质中。本发明还公开了一种网关通信方法、网关及Web通信系统,采用本发明的技术方案,使得Web浏览器之间,或者Web浏览器与局域网内的后端服务器之间,能够通过网关进行直接全双工的高效通信。
文档编号H04L29/08GK102546800SQ201210004360
公开日2012年7月4日 申请日期2012年1月6日 优先权日2012年1月6日
发明者关国锋, 朱建峰, 范家星 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1