CN102546800B - 一种网关握手、通信方法、网关及Web通信系统 - Google Patents
一种网关握手、通信方法、网关及Web通信系统 Download PDFInfo
- Publication number
- CN102546800B CN102546800B CN201210004360.XA CN201210004360A CN102546800B CN 102546800 B CN102546800 B CN 102546800B CN 201210004360 A CN201210004360 A CN 201210004360A CN 102546800 B CN102546800 B CN 102546800B
- Authority
- CN
- China
- Prior art keywords
- web browser
- gateway
- address information
- end server
- protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开一种网关握手的方法包括:网关接收网页Web浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器的地址信息;所述网关根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议Websocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道;所述网关将所述Web浏览器的地址信息保存到存储介质中。本发明还公开了一种网关通信方法、网关及Web通信系统,采用本发明的技术方案,使得Web浏览器之间,或者Web浏览器与局域网内的后端服务器之间,能够通过网关进行直接全双工的高效通信。
Description
技术领域
本发明涉及通信领域,尤其涉及一种网关握手、通信方法、网关及Web通信系统。
背景技术
随着互联网技术的发展,很多实时的,事件驱动的万维网(World WideWeb,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改为网页套接字协议Websocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道;
所述网关将所述Web浏览器的地址信息保存到存储介质中。
一种网关的通信方法,包括:
网关接收第一Web浏览器发送给第二Web浏览器的数据包,所述数据包中携带有应用数据及所述第二Web浏览器的地址信息;
所述网关查询存储介质,找到与所述第二Web浏览器的地址信息相匹配的网页套接字协议Websocket数据传输通道;
所述网关通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二Web浏览器。
一种网关的通信方法,包括:
网关接收Web浏览器发送给后端服务器的数据包,所述数据包中携带有应用数据及所述后端服务器的地址信息;
所述网关根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于传输控制协议TCP连接的数据传输通道,并将所述后端服务器的地址信息保存到存储介质中;
所述网关通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器。
一种网关,包括:协议引擎模块及存储介质,所述协议引擎模块包括:
请求接收单元,用于接收Web浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器的地址信息;
协议转换单元,用于根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议Websocket,使所述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改为网页套接字协议Websocket,使所述第一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 TextTransfer Protocol,HTTP)以及网页套接字(Websocket)的通信机制分别做简要的介绍:
HTTP协议是互联网上应用最为广泛的一种网络协议,HTTP协议定义了Web客户端与Web应用服务器请求和应答的标准,所有的Web文件都必须遵守这个标准。
基于HTTP协议的Web客户端/应用服务器请求响应机制的信息交换过程包括四个步骤:
(1)建立连接:Web客户端与Web应用服务器的指定端口(对于HTTP默认端口为80,对于具有安全性的HTTPS,默认端口为443)建立TCP(Transmission Control Protocol,传输控制协议)连接。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和443),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:dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Origin:http://example.com
Sec-WebSocket-Protocol:chat,superchat
(\r\n)
其中,Host为Web应用服务器主机,Upgrade为协议升级类型,Connection为连接类型,Key为安全认证密钥,Origin为请求来源,Protocol为可选的子协议名称;
Web应用服务器接受HTTP Upgrade请求,并返回响应消息给Web客户端,如:
HTTP/1.1101WebSocket Protocol Handshake
Upgrade:WebSocket
Connection:Upgrade
Sec-WebSocket-Origin:http://example.com
Sec-WebSocket-Location:ws://example.com/demo
Sec-WebSocket-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.1\r\n
Upgrade:WebSocket\r\n
Connection:Upgrade\r\n
...\r\n
可以在所述HTTP GET请求中,通过新增信元的方式携带所述Web浏览器的地址信息。
S102,所述网关根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议Websocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道。
需要说明的是,所述网关将HTTP协议升级为Websocket协议之后,还可以返回响应消息给所述Web浏览器。
所述响应消息具体可以为所述WebSocket网关对所述协议升级请求作出的HTTP响应的消息,所述响应消息的一个例子可以为如下代码所示:
HTTP/1.1101WebSocket Protocol Handshake\r\n
Upgrade:WebSocket\r\n
Connection:Upgrade\r\n
...\r\n
S103,所述网关将所述Web浏览器的地址信息保存到存储介质中。
具体而言,所述存储介质可以为非易失性的持久存储介质,进一步地,所述网关可以在所述存储介质中建立一个初始化的转发表,握手时读取的所述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 SystemInterconnection,开放系统互连)把网络从逻辑上分为了七层,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,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浏览器与所述后端服务器之间的实时的双工通信。
S303,所述网关通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器。
需要说明的是,所述后端服务器接收到所述应用数据后,还可以通过所述网关给所述Web浏览器返回送达确认消息。
本实施例中,网关通过获取Web浏览器发送的数据包中的后端服务器地址信息,与后端服务器建立TCP连接后,网关可以保持该TCP长时间不关闭,从而实现Web浏览器与后端服务器之间的全双工高效通信。
实施例四
如图5所示,基于实施例一的网关握手方法,本发明实施例四提供了一种网关,包括:协议引擎模块1及存储介质2,所述协议引擎模块1包括:
请求接收单元101,用于接收Web浏览器6的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器6的地址信息;
协议转换单元102,用于根据所述协议升级请求,将所述Web浏览器6与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议Websocket,使所述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与所述网关之间的Websocket连接。
需要说明的是,当所述网关与所述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改为网页套接字协议Websocket,使所述第一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;
所述其他TCP协议收发模块5,用于当所述目标节点为所述后端服务器7时,根据所述后端服务器7的地址信息,在所述网关与所述后端服务器7之间建立基于TCP连接的数据传输通道,并通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器7;所述其他TCP协议收发模块5还用于将所述后端服务器7的地址信息保存到所述存储介质2中。
本实施例的Web通信系统中,通过网关与Web浏览器建立Websocket连接,并获取和保存Web浏览器的地址信息,可以实现Web浏览器之间,以及Web浏览器到后端服务器之间的全双工高效通信。
需要说明的是,上述实施例一至实施例七中的相应技术特征可以相互参考。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种网关握手的方法,其特征在于,包括:
网关接收网页Web浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器的地址信息,所述Web浏览器的地址信息包括:用户组标识ID,用户ID,其中,所述用户组ID为所述Web浏览器所在的通信群组标识,所述用户ID是所述Web浏览器的身份标识,不同用户ID的Web浏览器只有在用户组ID相同时才可以相互通信;
所述网关根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议Websocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道;
所述网关将所述Web浏览器的地址信息保存到存储介质中。
2.权利要求1所述的方法,其特征在于,所述Web浏览器的地址信息还包括:网络协议IP地址及端口。
3.权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述网关关闭所述Websocket数据传输通道。
4.一种网关的通信方法,其特征在于,包括:
网关接收第一Web浏览器发送给第二Web浏览器的数据包,所述数据包中携带有应用数据及所述第二Web浏览器的地址信息;
所述第二Web浏览器的地址信息包括:用户组ID、用户ID,其中,所述用户组ID为所述Web浏览器所在的通信群组标识,所述用户ID是所述Web浏览器的身份标识,不同用户ID的Web浏览器只有在用户组ID相同时才可以相互通信;
所述网关查询存储介质,找到与所述第二Web浏览器的地址信息相匹配的网页套接字协议Websocket数据传输通道;
所述网关通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二Web浏览器。
5.一种网关的通信方法,其特征在于,包括:
网关接收Web浏览器发送给后端服务器的数据包,所述数据包中携带有应用数据及所述后端服务器的地址信息,所述后端服务器是用于向所述Web浏览器提供网上信息浏览服务的Web应用服务器;
所述网关根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于传输控制协议TCP连接的数据传输通道,并将所述后端服务器的地址信息保存到存储介质中;
所述网关与所述后端服务器之间建立基于传输控制协议TCP连接的数据传输通道之后,保持所述TCP连接长时间不关闭,使得后续的其他Web浏览器给所述后端服务器发送数据包时,查询存储介质得到所述网关与所述后端服务器之间建立的基于TCP连接的数据传输通道;
所述网关通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器。
6.如权利要求5所述的通信方法,其特征在于,所述后端服务器的地址信息包括:协议类型、服务器IP地址及服务器端口。
7.一种网关,其特征在于,包括:协议引擎模块及存储介质,所述协议引擎模块包括:
请求接收单元,用于接收Web浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述Web浏览器的地址信息,所述Web浏览器的地址信息包括:用户组标识ID,用户ID,其中,所述用户组ID为所述Web浏览器所在的通信群组标识,所述用户ID是所述Web浏览器的身份标识,不同用户ID的Web浏览器只有在用户组ID相同时才可以相互通信;
协议转换单元,用于根据所述协议升级请求,将所述Web浏览器与所述网关之间的应用层协议,由超文本传输协议HTTP改为网页套接字协议Websocket,使所述Web浏览器与所述网关之间建立Websocket数据传输通道;
存储单元,用于将所述Web浏览器的地址信息保存到所述存储介质中。
8.如权利要求7所述的网关,其特征在于,保存到所述存储介质中的所述Web浏览器的地址信息包括IP地址及端口。
9.如权利要求7或8所述的网关,其特征在于,所述存储介质为非易失性存储器。
10.如权利要求7或8所述的网关,其特征在于,所述协议引擎模块还包括:
监控单元,用于关闭所述Websocket数据传输通道。
11.一种网关,其特征在于,包括:接收模块、转发模块及存储介质;
所述接收模块用于接收第一Web浏览器发送给第二Web浏览器的数据包,所述数据包中携带有应用数据及所述第二Web浏览器的地址信息;
所述第二Web浏览器的地址信息包括:用户组ID、用户ID,所述Web浏览器的地址信息包括:用户组标识ID,用户ID,其中,所述用户组ID为所述Web浏览器所在的通信群组标识,所述用户ID是所述Web浏览器的身份标识,不同用户ID的Web浏览器只有在用户组ID相同时才可以相互通信;
所述存储介质保存有与所述网关建立有网页套接字协议Websocket数据通道的Web浏览器的地址信息;
所述转发模块用于查询所述存储介质,找到与所述第二Web浏览器的地址信息相匹配的Websocket数据传输通道,并通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二Web浏览器。
12.一种网关,其特征在于,包括:接收模块、其他TCP协议收发模块及存储介质;
所述接收模块用于接收Web浏览器发送给后端服务器的数据包,所述数据包中携带有应用数据及所述后端服务器的地址信息,所述后端服务器是用于向所述Web浏览器提供网上信息浏览服务的Web应用服务器;
所述其他TCP协议收发模块,用于根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于TCP连接的数据传输通道,所述网关与所述后端服务器之间建立基于传输控制协议TCP连接的数据传输通道之后,保持所述TCP连接长时间不关闭,使得后续的其他Web浏览器给所述后端服务器发送数据包时,查询存储介质得到所述网关与所述后端服务器之间建立的基于TCP连接的数据传输通道,并通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器,所述其他TCP协议收发模块还用于将所述后端服务器的地址信息保存到所述存储介质中。
13.一种Web通信系统,其特征在于,包括:网关,后端服务器;
所述网关包括:协议引擎模块、接收模块、转发模块及存储介质;
所述协议引擎模块包括:
请求接收单元,用于分别接收第一Web浏览器、第二Web浏览器、第NWeb浏览器的握手消息,所述握手消息中携带有协议升级请求以及所述第一Web浏览器、所述第二Web浏览器或所述第NWeb浏览器的地址信息,其中,N为自然数,所述Web浏览器的地址信息包括:用户组标识ID,用户ID,其中,所述用户组ID为所述Web浏览器所在的通信群组标识,所述用户ID是所述Web浏览器的身份标识,不同用户ID的Web浏览器只有在用户组ID相同时才可以相互通信;
协议转换单元,用于根据所述协议升级请求,分别将所述第一Web浏览器、所述第二Web浏览器和/或所述第NWeb浏览器与所述网关之间的应用层传输协议由超文本传输协议HTTP改为网页套接字协议Websocket,使所述第一Web浏览器、所述第二Web浏览器和/或所述第NWeb浏览器与所述网关之间建立Websocket数据传输通道;
存储单元,用于将所述第一Web浏览器、所述第二Web浏览器和/或所述第NWeb浏览器的地址信息保存到所述存储介质中;
所述接收模块,用于接收所述第一Web浏览器发送给目标节点的数据包,所述数据包中携带有应用数据及所述目标节点的地址信息;
所述转发模块,用于当所述目标节点为所述第二Web浏览器时,查询所述存储介质,找到与所述第二Web浏览器的地址信息相匹配的Websocket数据传输通道,并通过找到的所述Websocket数据传输通道,将所述应用数据转发给所述第二Web浏览器。
14.如权利要求13所述的通信系统,其特征在于,所述网关还包括:其他TCP协议收发模块;
所述其他TCP协议收发模块,用于当所述目标节点为所述后端服务器时,根据所述后端服务器的地址信息,在所述网关与所述后端服务器之间建立基于TCP连接的数据传输通道,并通过建立的所述基于TCP连接的数据传输通道,将所述应用数据发送给所述后端服务器。
15.如权利要求14所述的通信系统,其特征在于,所述其他TCP协议收发模块还用于将所述后端服务器的地址信息保存到所述存储介质中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210004360.XA CN102546800B (zh) | 2012-01-06 | 2012-01-06 | 一种网关握手、通信方法、网关及Web通信系统 |
PCT/CN2012/075780 WO2013102335A1 (zh) | 2012-01-06 | 2012-05-19 | 一种网关握手、通信方法、网关及Web通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210004360.XA CN102546800B (zh) | 2012-01-06 | 2012-01-06 | 一种网关握手、通信方法、网关及Web通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102546800A CN102546800A (zh) | 2012-07-04 |
CN102546800B true CN102546800B (zh) | 2015-03-25 |
Family
ID=46352746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210004360.XA Active CN102546800B (zh) | 2012-01-06 | 2012-01-06 | 一种网关握手、通信方法、网关及Web通信系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102546800B (zh) |
WO (1) | WO2013102335A1 (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932436A (zh) * | 2012-10-19 | 2013-02-13 | 广东中科遥感技术有限公司 | 遥感远程会商与协同标绘系统、浏览器、服务器及方法 |
CN102938788B (zh) * | 2012-11-15 | 2016-03-30 | 易程科技股份有限公司 | 事件的处理方法和装置 |
US9253262B2 (en) * | 2013-01-24 | 2016-02-02 | Rovi Guides, Inc. | Systems and methods for connecting media devices through web sockets |
CN103401942B (zh) * | 2013-08-12 | 2016-05-04 | 网宿科技股份有限公司 | 内容分发网络节点实现web应用加速的方法和系统 |
CN103634382B (zh) * | 2013-11-20 | 2019-10-18 | 科大讯飞股份有限公司 | 一种在网页上实现实时交互的系统及方法 |
CN103702238B (zh) * | 2013-12-23 | 2017-11-28 | 华为终端有限公司 | 一种多屏视频共享方法及终端、服务器 |
EP3103238B1 (en) * | 2014-02-07 | 2021-06-23 | Oracle International Corporation | Mobile cloud service architecture |
CN104484823B (zh) * | 2014-11-26 | 2018-05-04 | 中金金融认证中心有限公司 | 电子银行pki服务方法及其系统 |
CN106534052B (zh) * | 2015-09-15 | 2020-11-06 | 中移(杭州)信息技术有限公司 | 一种通信处理方法及电子设备 |
CN105245446B (zh) * | 2015-09-22 | 2019-02-19 | 上海华为技术有限公司 | 一种报文发送方法及网关 |
CN105450479A (zh) * | 2016-01-04 | 2016-03-30 | 山东超越数控电子有限公司 | 一种监控模块的方法及装置 |
CN106330955B (zh) * | 2016-09-23 | 2019-10-29 | 奕甲智能技术(上海)有限公司 | 一种即时通讯扩展方法及系统 |
CN106453433B (zh) * | 2016-12-20 | 2019-09-13 | 北京数码视讯科技股份有限公司 | 多信令协议互通方法及多信令转换设备 |
CN106790717A (zh) * | 2017-03-15 | 2017-05-31 | 福建中金在线信息科技有限公司 | 一种网页通讯方法及装置 |
CN108123940B (zh) * | 2017-12-18 | 2020-07-24 | 中国科学院深圳先进技术研究院 | 基于socket的异步通信方法、存储介质及处理器 |
CN109005190B (zh) * | 2018-08-31 | 2020-10-30 | 浙江百应科技有限公司 | 一种在网页上实现全双工语音对话和页面控制的方法 |
CN110650202B (zh) * | 2019-09-26 | 2021-02-19 | 支付宝(杭州)信息技术有限公司 | 通信交互方法、装置及电子设备 |
CN110830369A (zh) * | 2019-11-13 | 2020-02-21 | 山西省工业设备安装集团有限公司 | 一种基于nodejs的智慧工地数据服务网关 |
CN110888329A (zh) * | 2019-11-14 | 2020-03-17 | 深圳市力合微电子股份有限公司 | 设备厂家开放式接入的智能家居平台及其数据处理方法 |
CN111510476B (zh) * | 2020-04-03 | 2023-06-20 | 金蝶软件(中国)有限公司 | 通信方法、装置、计算机设备和计算机可读存储介质 |
CN111831368A (zh) * | 2020-05-25 | 2020-10-27 | 武汉烽火众智数字技术有限责任公司 | 一种浏览器应用与桌面应用交互的方法、系统及存储介质 |
CN111934840A (zh) * | 2020-06-29 | 2020-11-13 | 北京百度网讯科技有限公司 | 客户端和服务端的通信方法、网关、电子设备及存储介质 |
CN111884861B (zh) * | 2020-08-03 | 2022-07-29 | 南京信息职业技术学院 | 一种基于Netty的物联网设备实时告警方法 |
CN112468502B (zh) * | 2020-11-27 | 2022-07-01 | 杭州梦视网络科技有限公司 | 一种基于Websocket协议的嵌入式设备远程实验方法 |
CN112486446B (zh) * | 2020-12-01 | 2023-12-01 | 佳都科技集团股份有限公司 | 一种基于服务器的内容编辑方法及装置 |
CN114679398B (zh) * | 2020-12-24 | 2024-03-22 | 中国移动通信有限公司研究院 | 网页拨测的数据补偿方法及装置 |
CN112788144A (zh) * | 2021-01-19 | 2021-05-11 | 深圳市位元领航科技有限公司 | 一种通信方式的实现方法、服务器以及客户端 |
CN114979189B (zh) * | 2021-02-19 | 2024-05-07 | 上海宝信软件股份有限公司 | 基于元数据的时空大数据rest微服务数据交互方法和系统 |
CN113420408B (zh) * | 2021-05-14 | 2024-03-19 | 上海霍普建筑设计事务所股份有限公司 | Cad网络化导入系统和导入方法 |
CN113487849B (zh) * | 2021-07-02 | 2022-12-02 | 北京睿芯高通量科技有限公司 | 一种新型智能安防系统及其目标人员预警方法 |
CN113766010B (zh) * | 2021-08-09 | 2024-06-28 | 深圳前海爱客风信息技术有限公司 | 数据流处理方法和装置 |
CN115714804A (zh) * | 2022-11-15 | 2023-02-24 | 成都索骥科技有限公司 | 一种web网页应用与本地原生应用程序通信的装置及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043392A (zh) * | 2006-04-28 | 2007-09-26 | 华为技术有限公司 | 一种WiMAX网络中转发IP报文的装置及基站设备 |
CN101990193A (zh) * | 2009-08-07 | 2011-03-23 | 中兴通讯股份有限公司 | 空闲模式下终端位置更新及改变工作协议模式的操作方法 |
CN102299967A (zh) * | 2011-09-08 | 2011-12-28 | 中兴通讯股份有限公司 | 移动座席系统、网关、移动终端及实现移动座席的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9459936B2 (en) * | 2009-05-01 | 2016-10-04 | Kaazing Corporation | Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications |
US8527774B2 (en) * | 2009-05-28 | 2013-09-03 | Kaazing Corporation | System and methods for providing stateless security management for web applications using non-HTTP communications protocols |
-
2012
- 2012-01-06 CN CN201210004360.XA patent/CN102546800B/zh active Active
- 2012-05-19 WO PCT/CN2012/075780 patent/WO2013102335A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043392A (zh) * | 2006-04-28 | 2007-09-26 | 华为技术有限公司 | 一种WiMAX网络中转发IP报文的装置及基站设备 |
CN101990193A (zh) * | 2009-08-07 | 2011-03-23 | 中兴通讯股份有限公司 | 空闲模式下终端位置更新及改变工作协议模式的操作方法 |
CN102299967A (zh) * | 2011-09-08 | 2011-12-28 | 中兴通讯股份有限公司 | 移动座席系统、网关、移动终端及实现移动座席的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2013102335A1 (zh) | 2013-07-11 |
CN102546800A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102546800B (zh) | 一种网关握手、通信方法、网关及Web通信系统 | |
Glaroudis et al. | Survey, comparison and research challenges of IoT application protocols for smart farming | |
CN100531229C (zh) | 通用外部代理 | |
CN112954001B (zh) | 一种http转https双向透明代理的方法和装置 | |
EP1564959B1 (en) | System and method for trivial file transfer protocol including broadcasting function | |
CN102904959B (zh) | 网络加速方法和网关 | |
CN101043522B (zh) | 一种基于Web服务器的通信方法及系统 | |
CN103108037B (zh) | 一种通信方法,Web服务器及Web通信系统 | |
JP5494649B2 (ja) | 中継装置、中継方法、及び中継装置制御プログラム | |
CN104009938A (zh) | 基于路由层面的长连接的方法和系统 | |
CN102594886B (zh) | 浏览器与浏览器直通的方法、装置和通信系统 | |
CN101986648A (zh) | 一种tcp选项的协商方法、装置及网络设备 | |
CN107222561A (zh) | 一种传输层反向代理方法 | |
CN110351379B (zh) | 一种通信控制的方法、装置、电子设备和存储介质 | |
CN110365779A (zh) | 一种通信控制的方法、装置、电子设备和存储介质 | |
CN105340242A (zh) | 使用http的双向实时通讯系统 | |
KR102025631B1 (ko) | Non-TCP/IP 기반의 네트워크상의 IoT 기기와 oneM2M 표준 기반의 IoT 서버 상호간을 중계하는 게이트웨이 서버 및 그 동작 방법 | |
CN111385068B (zh) | 数据传输方法、装置、电子设备及通信系统 | |
CN110247926A (zh) | 一种交互方法和系统 | |
Kodali | An implementation of MQTT using CC3200 | |
CN108989157B (zh) | 用于智能设备控制的方法、装置 | |
CN113794715B (zh) | 一种虚拟点对点网络数据发送方法及其系统 | |
CN114553567B (zh) | 多方安全计算中的网络传输方法、系统、存储介质及计算设备 | |
CN114205149B (zh) | 网络通信方法及装置 | |
WO2008050585A1 (fr) | Système de communication bidirectionnelle, appareil serveur, appareil de relais, procédé et programme de communication bidirectionnelle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |