两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種網關握手、通信方法、網關及Web通信系統(tǒng)的制作方法

文檔序號:7886759閱讀:195來源:國知局
專利名稱:一種網關握手、通信方法、網關及Web通信系統(tǒng)的制作方法
技術領域
本發(fā)明涉及通信領域,尤其涉及一種網關握手、通信方法、網關及Web通信系統(tǒng)。
技術背景
隨著互聯(lián)網技術的發(fā)展,很多實時的,事件驅動的萬維網(World Wide Web, Web) 應用,比如Web實時協(xié)作、Web多人游戲、Web實時數據推送等,都要求Web的通信節(jié)點之間直接進行實時全雙工(Full Duplex)通信,即同步進行數據發(fā)送和數據接收。
由于Web的通信節(jié)點往往都位于防火墻之后,相互之間并不可見,它們之間的通信需要通過中繼服務器實現,而中繼服務器作為通信中介或者網關,在支持Web瀏覽器之間或者是Web瀏覽器與局域網內的后端服務器之間的實時交互時,一般采用基于HTTP協(xié)議的技術進行通信,如輪詢技術(Polling)或服務器推技術(Comet)等,其中,Polling技術只能支持半雙工通信,而Comet采用分別用于上行數據流和下行數據流的兩個連接來模擬全雙工通信,需要耗費雙倍的Web應用服務器資源,效率低下,簡而言之,基于HTTP協(xié)議的技術并非為了實現實時全雙工通信而設計,因此,傳統(tǒng)的中繼服務器無法支持Web瀏覽器之間,或者Web瀏覽器與后端服務器之間,進行直接全雙工的高效通信,以實現實時交互數據。發(fā)明內容
本發(fā)明的主要目的在于提供一種網關握手、通信方法、網關及Web系統(tǒng),以支持 Web瀏覽器之間,或者Web瀏覽器與后端服務器之間,通過網關進行直接全雙工的高效通信,以實現實時數據交互。
為了實現上述目的,本發(fā)明采用的技術方案如下
一種網關握手的方法,包括
網關接收網頁Web瀏覽器的握手消息,所述握手消息中攜帶有協(xié)議升級請求以及所述Web瀏覽器的地址信息;
所述網關根據所述協(xié)議升級請求,將所述Web瀏覽器與所述網關之間的應用層協(xié)議,由超文本傳輸協(xié)議HTTP改為網頁套接字協(xié)議ffebsocket,使所述Web瀏覽器與所述網關之間建立Websocket數據傳輸通道;
所述網關將所述Web瀏覽器的地址信息保存到存儲介質中。
一種網關的通信方法,包括
網關接收第一 Web瀏覽器發(fā)送給第二 Web瀏覽器的數據包,所述數據包中攜帶有應用數據及所述第二 Web瀏覽器的地址信息;
所述網關查詢存儲介質,找到與所述第二 Web瀏覽器的地址信息相匹配的網頁套接字協(xié)議Websocket數據傳輸通道;
所述網關通過找到的所述Websocket數據傳輸通道,將所述應用數據轉發(fā)給所述第二 Web瀏覽器。5
一種網關的通信方法,包括
網關接收Web瀏覽器發(fā)送給后端服務器的數據包,所述數據包中攜帶有應用數據及所述后端服務器的地址信息;
所述網關根據所述后端服務器的地址信息,在所述網關與所述后端服務器之間建立基于傳輸控制協(xié)議TCP連接的數據傳輸通道,并將所述后端服務器的地址信息保存到存儲介質中;
所述網關通過建立的所述基于TCP連接的數據傳輸通道,將所述應用數據發(fā)送給所述后端服務器。
一種網關,包括協(xié)議引擎模塊及存儲介質,所述協(xié)議引擎模塊包括
請求接收單元,用于接收Web瀏覽器的握手消息,所述握手消息中攜帶有協(xié)議升級請求以及所述Web瀏覽器的地址信息;
協(xié)議轉換單元,用于根據所述協(xié)議升級請求,將所述Web瀏覽器與所述網關之間的應用層協(xié)議,由超文本傳輸協(xié)議HTTP改為網頁套接字協(xié)議ffebsocket,使所述Web瀏覽器與所述網關之間建立Websocket數據傳輸通道;
存儲單元,用于將所述Web瀏覽器的地址信息保存到所述存儲介質中。
一種網關,包括接收模塊、轉發(fā)模塊及存儲介質;
所述接收模塊用于接收第一 Web瀏覽器發(fā)送給第二 Web瀏覽器的數據包,所述數據包中攜帶有應用數據及所述第二 Web瀏覽器的地址信息;
所述存儲介質保存有與所述網關建立有網頁套接字協(xié)議Websocket數據通道的 Web瀏覽器的地址信息;
所述轉發(fā)模塊用于查詢所述存儲介質,找到與所述第二 Web瀏覽器的地址信息相匹配的Websocket數據傳輸通道,并通過找到的所述Websocket數據傳輸通道,將所述應用數據轉發(fā)給所述第二 Web瀏覽器。
一種網關,包括接收模塊、其他TCP協(xié)議收發(fā)模塊及存儲介質;
所述接收模塊用于接收Web瀏覽器發(fā)送給后端服務器的數據包,所述數據包中攜帶有應用數據及所述后端服務器的地址信息;
所述其他TCP協(xié)議收發(fā)模塊,用于根據所述后端服務器的地址信息,在所述網關與所述后端服務器之間建立基于TCP連接的數據傳輸通道,并通過建立的所述基于TCP連接的數據傳輸通道,將所述應用數據發(fā)送給所述后端服務器,所述其他TCP協(xié)議收發(fā)模塊還用于將所述后端服務器的地址信息保存到所述存儲介質中。
一種Web通信系統(tǒng),包括網關,后端服務器;
所述網關包括協(xié)議引擎模塊、接收模塊、轉發(fā)模塊及存儲介質;
所述協(xié)議引擎模塊包括
請求接收單元,用于分別接收第一 Web瀏覽器、第二 Web瀏覽器、第NWeb瀏覽器的握手消息,所述握手消息中攜帶有協(xié)議升級請求以及所述第一 Web瀏覽器、所述第二 Web瀏覽器或所述第NWeb瀏覽器的地址信息,其中,N為自然數;
協(xié)議轉換單元,用于根據所述協(xié)議升級請求,分別將所述第一 Web瀏覽器、所述第二 Web瀏覽器和/或所述第NWeb瀏覽器與所述網關之間的應用層傳輸協(xié)議由超文本傳輸協(xié)議HTTP改為網頁套接字協(xié)議ffebsocket,使所述第一 Web瀏覽器、所述第二 Web瀏覽器和/或所述第NWeb瀏覽器與所述網關之間建立Websocket數據傳輸通道;
存儲單元,用于將所述第一 Web瀏覽器、所述第二 Web瀏覽器和/或所述第NWeb 瀏覽器的地址信息保存到所述存儲介質中;
所述接收模塊,用于接收所述第一 Web瀏覽器發(fā)送給目標節(jié)點的數據包,所述數據包中攜帶有應用數據及所述目標節(jié)點的地址信息;
所述轉發(fā)模塊,用于當所述目標節(jié)點為所述第二 Web瀏覽器時,查詢所述存儲介質,找到與所述第二 Web瀏覽器的地址信息相匹配的Websocket數據傳輸通道,并通過找到的所述Websocket數據傳輸通道,將所述應用數據轉發(fā)給所述第二 Web瀏覽器。
采用本發(fā)明的技術方案,可以在網關與Web瀏覽器之間建立一個Websocket連接, 即一個全雙工的Websocket數據傳輸通道,以支持Web瀏覽器之間,或者Web瀏覽器與局域網內的后端服務器之間,通過網關進行直接全雙工的高效通信,以實時交互數據。


為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例一提供的一種網關握手的方法流程圖2為本發(fā)明實施例一提供的網關握手方法中網關獲取并保存握手消息攜帶的 Web瀏覽器的地址信息的示意圖3為本發(fā)明實施例二提供的一種Web瀏覽器之間通信的方法流程圖4為本發(fā)明實施例三提供的一種Web瀏覽器與后端服務器通信的方法流程圖5為本發(fā)明實施例四提供的一種網關示意圖6為本發(fā)明實施例五提供的一種網關示意圖7為本發(fā)明實施例六提供的一種網關示意圖8為本發(fā)明實施例七提供的一種一種Web通信系統(tǒng)示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
為使本領域一般技術人員更好的了解本發(fā)明實施例提供的技術方案,對萬維網 (World Wide Web, Web)通信中采用的超文本傳輸協(xié)議(Hyper Text Transfer Protocol, HTTP)以及網頁套接字(Websocket)的通信機制分別做簡要的介紹
HTTP協(xié)議是互聯(lián)網上應用最為廣泛的一種網絡協(xié)議,HTTP協(xié)議定義了 Web客戶端與Web應用服務器請求和應答的標準,所有的Web文件都必須遵守這個標準。
基于HTTP協(xié)議的Web客戶端/應用服務器請求響應機制的信息交換過程包括四個步驟
(1)建立連接Web客戶端與Web應用服務器的指定端口(對于HTTP默認端口為80,對于具有安全性的HTTPS,默認端口為443)建立TCP (Transmission Control I^otocol,傳輸控制協(xié)議)連接。HTTP是比TCP更高層次的應用層協(xié)議,根據規(guī)則,只有低層協(xié)議建立之后才能進行更高層協(xié)議的連接,因此,首先要建立TCP連接;
(2)發(fā)送請求建立一個TCP連接后,Web客戶端把請求消息送到Web應用服務器的相應端口上,請求消息包含請求的方法、URL、協(xié)議版本、請求頭部以及請求數據等,完成請求動作提交;
(3)發(fā)送響應Web應用服務器在處理完Web客戶端請求之后,要向Web客戶端發(fā)送響應消息響應消息的內容包括消息協(xié)議的版本、成功或者錯誤編碼加上包含Web應用服務器信息、實體元信息以及可能的實體內容;
(4)關閉連接Web客戶端和Web應用服務器雙方都可以通過關閉套接字來結束 TCP/IP 對話。
基于HTTP協(xié)議的通信技術存在以下缺點
1)無法實現點對點的全雙工通信。由于傳統(tǒng)的HTTP輪詢是半雙工,而基于HTTP 協(xié)議的Comet技術需要在兩條連接上實現雙向通信,都無法支持通過一個連接實現點對點的全雙工的實時通信;
2)資源浪費嚴重。由于采用的HTTP協(xié)議所承載的信息往往只有幾個字節(jié),而HTTP 頭過大(近1K),即無效信息載荷多,因此,頻繁的輪詢造成系統(tǒng)帶寬消耗大、延遲高,效率低下。
Websocket是HTML5中定義的一種新的協(xié)議,支持Web客戶端與Web應用服務器之間通過一個Websocket連接進行全雙工的高效通信。Websocket有著兼容HTTP的握手機制,可以共享默認的HTTP與HTTPS端口(80和44 ,Websocket的通信機制如下
(1)握手
Web客戶端可以通過給Web應用服務器發(fā)送握手消息,將Web客戶端與Web應用服務器之間的HTTP協(xié)議提升為Websocket協(xié)議以建立Websocket連接,具體的,Web客戶端 (example, com)給 Web 應用服務器(server, example, com)發(fā)送一個 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為協(xié)議升級類型,Connection為連接類型,Key為安全認證密鑰,Origin為請求來源,Protocol為可選的子協(xié)議名稱;
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響應狀態(tài)碼(101 客戶要求服務器根據請求轉換HTTP協(xié)議版本),Origin必須等于HTTP Upgrade請求的來源,Location必須等于HTTP Upgrade請求的地址,Protocol必須包含HTTP Upgrade請求的子協(xié)議名,“8jKS,y :G*Co,Wxa-"為把由 HTTP Upgrade請求中的Key構造的16字節(jié)的數據,進行MD5加密得到一個16字節(jié)的值;
(2)數據傳輸
Websocket連接建立之后,Websocket數據幀就可以以全雙工的模式在Web客戶端和Web應用服務器之間來回傳輸。
實施例一
圖1為本發(fā)明實施例一提供的一種網關握手的方法流程圖。
如圖1所示,本發(fā)明實施例一的網關握手的方法包括
S101,網關接收網頁Web瀏覽器的握手消息,所述握手消息中攜帶有協(xié)議升級請求以及所述Web瀏覽器的地址信息。
需要說明的是,所述協(xié)議升級請求一般為一個HTTP GET請求,具體的例子可以為如下代碼所示
GET/real-time HTTP/1. l\r\n
Upgrade :WebSocket\r\n
Connection :Upgrade\r\n
. . . \r\n
可以在所述HTTP GET請求中,通過新增信元的方式攜帶所述Web瀏覽器的地址信肩、ο
S102,所述網關根據所述協(xié)議升級請求,將所述Web瀏覽器與所述網關之間的應用層協(xié)議,由超文本傳輸協(xié)議HTTP改為網頁套接字協(xié)議ffebsocket,使所述Web瀏覽器與所述網關之間建立Websocket數據傳輸通道。
需要說明的是,所述網關將HTTP協(xié)議升級為Websocket協(xié)議之后,還可以返回響應消息給所述Web瀏覽器。
所述響應消息具體可以為所述WebSocket網關對所述協(xié)議升級請求作出的HTTP 響應的消息,所述響應消息的一個例子可以為如下代碼所示
HTTP/1. IlOlffebSocket Protocol Handshake\r\n Upgrade :WebSocket\r\n Connection :Upgrade\r\n ...\r\nS103,所述網關將所述Web瀏覽器的地址信息保存到存儲介質中。具體而言,所述存儲介質可以為非易失性的持久存儲介質,進一步地,所述網關可9以在所述存儲介質中建立一個初始化的轉發(fā)表,握手時讀取的所述Web瀏覽器的地址信息,并更新到所述轉發(fā)表中。
需要說明的是,本實施例中S102和S103的順序不應用于限制本發(fā)明,S102和 S103可以為并行處理,或者S103還可以先于S102處理。
本實施例的方法中,網關可以通過與有通信需求的Web瀏覽器逐一握手,分別與各個Web瀏覽器建立Websocket連接,同時獲取并保存各個Web瀏覽器的地址信息,網關可以根據其中任一個Web瀏覽器的地址信息,找到網關與該Web瀏覽器的Websocket連接,以便于進一步發(fā)送數據給瀏覽器或者后端服務器。
具體地,在S103中,參見圖2,所述Web瀏覽器的地址信息可以包括用戶組標識 ID,用戶ID,網絡協(xié)議IP地址及端口,其中,所述用戶組ID為所述Web瀏覽器所在的通信群組標識,具體而言,通信群組可以與騰訊的即時聊天工具QQ中的群組概念類似,所述用戶 ID是所述Web瀏覽器的身份標識,不同用戶ID的Web瀏覽器只有在用戶組ID相同時才可以相互通信。
進一步地,本實施例中,還包括
S104,所述網關關閉所述Web瀏覽器與所述網關之間的所述Websocket數據傳輸通道。
具體地,當所述網關與所述Web瀏覽器之間的Websocket連接長時間不使用,或者出現異常情況,例如遭受網絡攻擊時,可以關閉所述Web瀏覽器與所述網關之間的所述 Websocket數據傳輸通道,具體而言,關閉所述Web瀏覽器與網關所述之間傳輸層的TCP連接,有利于節(jié)省網絡資源。
實施例二
基于實施例一所述的網關握手的方法,如圖3所示,本發(fā)明實施例二提供了一種網關的通信方法,包括如下步驟
S201,網關接收第一 Web瀏覽器發(fā)送給第二 Web瀏覽器的數據包,所述數據包中攜帶有應用數據及所述第二 Web瀏覽器的地址信息。
其中,所述第一 Web瀏覽器作為通信發(fā)起節(jié)點,所述第二瀏覽器作為通信目標節(jié)點ο
需要說明的是,所述數據包中的所述應用數據,是按照Websocket協(xié)議規(guī)定的數據格式構造并封裝的,所述應用數據可以以數據幀的形式進行傳輸。
需要進一步說明的是,所述數據包中一般是將第二 Web瀏覽器的地址信息封裝為一個頭文件再進行傳輸,所述網關通過對該頭文件進行解析,得到所述第二 Web瀏覽器的地址信息;本領域技術人員應當知道,OSI (Open System hterconnection,開放系統(tǒng)互連) 把網絡從邏輯上分為了七層,分別為物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層,OSI七層模型是一種框架性的設計方法,建立七層模型的主要目的是為解決異種網絡互連時所遇到的兼容性問題,以幫助不同類型的通信節(jié)點實現數據傳輸,當通信節(jié)點的應用層的數據發(fā)送給目標節(jié)點時,會將數據逐層封裝成數據包后,通過傳輸介質發(fā)送給目標節(jié)點,因此,網關通過對數據包進行解析,具體而言,可以對數據包的頭文件進行七層分析,從而獲取目標節(jié)點的地址信息,根據目標節(jié)點的地址信息,還可以判斷目標節(jié)點為 Web瀏覽器,還是局域網內的后端服務器。
S202,所述網關查詢存儲介質,找到與所述第二 Web瀏覽器的地址信息相匹配的 Websocket數據傳輸通道。
具體地,所述網關將所述第二 Web瀏覽器的地址信息,與所述網關的存儲介質中保存的各個Web瀏覽器的地址信息進行比對,例如,通過查詢轉發(fā)表,找到所述第二 Web瀏覽器所在的Websocket數據傳輸通道。
S203,所述網關通過找到的所述Websocket數據傳輸通道,將所述應用數據轉發(fā)給所述第二 Web瀏覽器。
需要說明的是,所述第二 Web瀏覽器接收到所述應用數據后,還可以通過網關給所述第一 Web瀏覽器返回送達確認消息。
本實施例的方法中,當兩個Web瀏覽器之間通信時,網關通過將作為通信目標節(jié)點的第二 Web瀏覽器的地址信息與事先保存在存儲介質中的各個Web瀏覽器的地址信息進行比對,可以找到第二 Web瀏覽器所在的Websocket數據傳輸通道,并通過該Websocket數據傳輸通道,從而實現兩個Web瀏覽器之間基于Websocket協(xié)議的實時的全雙工高效通信。
具體地,所述第二 Web瀏覽器的地址信息可以包括用戶組ID、用戶ID、IP地址及端□。
實施例三
基于實施例一的網關握手方法,如圖4所示,本發(fā)明實施例三還提供了一種網關的通信方法,包括如下步驟
S301,網關接收Web瀏覽器發(fā)送給后端服務器的數據包,所述數據包中攜帶有應用數據及所述后端服務器的地址信息。
需要說明的是,所述后端服務器是用于向所述Web瀏覽器提供網上信息瀏覽等服務的Web應用服務器,所述后端服務器位于防火墻之后且與所述網關處于同一個局域網內;進一步需要說明的是,所述應用數據是按照Websocket協(xié)議規(guī)定的數據格式構造并封裝的,所述應用數據可以以數據幀的形式進行傳輸。
S302,所述網關根據所述后端服務器的地址信息,在所述網關與所述后端服務器之間建立基于傳輸控制協(xié)議TCP連接的數據傳輸通道,并將所述后端服務器的地址信息保存到存儲介質中。
具體地,所述后端服務器的地址信息可以包括協(xié)議類型,服務器IP地址及服務器端口,其中,所述協(xié)議類型為所述網關與所述后端服務器建立TCP連接時,所采用的TCP/ IP協(xié)議的類型,所述網關按照所述地址信息指定的所述后端服務器的IP及端口,在所述網關與所述后端服務器之間建立基于傳輸控制協(xié)議TCP連接的數據傳輸通道,其上層的應用層傳輸協(xié)議為所述協(xié)議類型給出的TCP/IP協(xié)議。
進一步地,所述網關與所述后端服務器之間建立基于傳輸控制協(xié)議TCP連接的數據傳輸通道之后,可以保持所述TCP連接長時間不關閉,使得后續(xù)的其他Web瀏覽器給所述后端服務器發(fā)送數據包時,可以查詢存儲介質得到所述網關與所述后端服務器之間建立的基于TCP連接的數據傳輸通道,實現其它Web瀏覽器與所述后端服務器之間的實時的雙工ififn。
S303,所述網關通過建立的所述基于TCP連接的數據傳輸通道,將所述應用數據發(fā)送給所述后端服務器。
需要說明的是,所述后端服務器接收到所述應用數據后,還可以通過所述網關給所述Web瀏覽器返回送達確認消息。
本實施例中,網關通過獲取Web瀏覽器發(fā)送的數據包中的后端服務器地址信息, 與后端服務器建立TCP連接后,網關可以保持該TCP長時間不關閉,從而實現Web瀏覽器與后端服務器之間的全雙工高效通信。
實施例四
如圖5所示,基于實施例一的網關握手方法,本發(fā)明實施例四提供了一種網關,包括協(xié)議引擎模塊1及存儲介質2,所述協(xié)議引擎模塊1包括
請求接收單元101,用于接收Web瀏覽器6的握手消息,所述握手消息中攜帶有協(xié)議升級請求以及所述Web瀏覽器6的地址信息;
協(xié)議轉換單元102,用于根據所述協(xié)議升級請求,將所述Web瀏覽器6與所述網關之間的應用層協(xié)議,由超文本傳輸協(xié)議HTTP改為網頁套接字協(xié)議ffebsocket,使所述Web瀏覽器6與所述網關之間建立Websocket數據傳輸通道;
存儲單元103,用于將所述Web瀏覽器6的地址信息保存到所述存儲介質2中。
本實施例中的網關,通過與有通信需求的Web瀏覽器逐一握手,分別與各個Web瀏覽器建立Websocket數據傳輸通道,同時還獲取并保存各個Web瀏覽器的地址信息,網關可以根據其中任一個Web瀏覽器的地址信息,查詢存儲介質,找到網關與該Web瀏覽器的 Websocket數據傳輸通道,有利于實現Web瀏覽器之間或者Web瀏覽器與后端服務器的全雙工高效通信。
本實施例中,具體地,所述存儲介質2保存的所述Web瀏覽器6的地址信息可以包括用戶組標識ID、用戶ID、網絡協(xié)議IP地址及端口。
本實施例中,具體地,所述存儲介質2可以為非易失性存儲器,所述非易失性存儲器在電源供應中斷后,保存的數據不會消失。
本實施例中,進一步地,所述協(xié)議引擎模塊1還可以包括
監(jiān)控單元104,用于關閉所述Web瀏覽器6與所述網關之間的W^ebsocket連接。
需要說明的是,當所述網關與所述Web瀏覽器6之間的Websocket連接長時間不使用,或者出現異常情況,例如遭受網絡攻擊時,可以關閉所述Web瀏覽器6與網關所述之間傳輸層的TCP連接,且有利于節(jié)省網絡資源。
實施例五
如圖6所示,基于實施例二的網關通信方法,本發(fā)明提供了一種網關裝置,包括 接收模塊3、轉發(fā)模塊4及存儲介質2 ;
所述接收模塊3用于接收第一 Web瀏覽器601發(fā)送給第二 Web瀏覽器602的數據包,所述數據包中攜帶有應用數據及所述第二 Web瀏覽器602的地址信息;
所述存儲介質2保存有與所述網關建立有Websocket數據通道的Web瀏覽器的地址信息;
所述轉發(fā)模塊4用于查詢所述存儲介質2,找到與所述第二 Web瀏覽器602的地址信息相匹配的Websocket數據傳輸通道,并通過找到的所述Websocket數據傳輸通道,將所述應用數據轉發(fā)給所述第二 Web瀏覽器602。
本實施例中,當兩個Web瀏覽器之間通信時,網關通過將作為通信目標節(jié)點的第二 Web瀏覽器的地址信息與事先保存在存儲介質中的各個Web瀏覽器的地址信息進行比對,可以找到第二 Web瀏覽器所在的Websocket數據傳輸通道,通過該Websocket數據傳輸通道,可以實現兩個Web瀏覽器之間的全雙工的高效通信。
本實施例中,具體地,所述存儲介質2可以為非易失性存儲器,所述非易失性存儲器在電源供應中斷后,保存的數據不會消失。
實施例六
如圖7所示,基于實施例三的網關通信方法,本發(fā)明還提供了一種網關,包括接收模塊3、其他TCP協(xié)議收發(fā)模塊5及存儲介質;
所述接收模塊用于接收Web瀏覽器發(fā)送給后端服務器的數據包,所述數據包中攜帶有應用數據及所述后端服務器的地址信息;
所述其他TCP協(xié)議收發(fā)模塊,用于根據所述后端服務器的地址信息,在所述網關與所述后端服務器之間建立基于TCP連接的數據傳輸通道,并通過建立的所述基于TCP連接的數據傳輸通道,將所述應用數據發(fā)送給所述后端服務器,所述其他TCP協(xié)議收發(fā)模塊還用于將所述后端服務器的地址信息保存到所述存儲介質中。
本實施例中,網關通過獲取Web瀏覽器發(fā)送給后端服務器的數據包中的地址信息,與后端服務器建立TCP連接后,網關可以保持該TCP長時間不關閉,從而實現Web瀏覽器與后端服務器之間的全雙工的高效通信。
實施例七
如圖8所示,本發(fā)明實施例七提供了一種Web通信系統(tǒng),包括網關,后端服務器 7 ;
所述網關包括協(xié)議引擎模塊1、接收模塊3、轉發(fā)模塊4、其他TCP協(xié)議收發(fā)模塊5 及存儲介質2 ;
所述協(xié)議引擎模塊1包括
請求接收單元101,用于分別接收第一 Web瀏覽器601,第二 Web瀏覽器602及第 NWeb瀏覽器603的握手消息,所述握手消息中攜帶有協(xié)議升級請求以及所述第一 Web瀏覽器601、所述第二 Web瀏覽器602或所述第NWeb瀏覽器603的地址信息,其中,N為自然數;
協(xié)議轉換單元102,用于根據所述協(xié)議升級請求,分別將所述第一 Web瀏覽器601、 所述第二 Web瀏覽器602和/或所述第NWeb瀏覽器603與所述網關之間的應用層傳輸協(xié)議由超文本傳輸協(xié)議HTTP改為網頁套接字協(xié)議ffebsocket,使所述第一 Web瀏覽器601、所述第二 Web瀏覽器602和/或所述第NWeb瀏覽器603與所述網關之間建立Websocket數據傳輸通道;
存儲單元103,用于將所述第一 Web瀏覽器601、所述第二 Web瀏覽器602和/或所述第NWeb瀏覽器603的地址信息保存到所述存儲介質2中;
所述接收模塊3,用于接收所述第一 Web瀏覽器601發(fā)送給目標節(jié)點的數據包,所述數據包中攜帶有應用數據及所述目標節(jié)點的地址信息;
所述轉發(fā)模塊4,用于當所述目標節(jié)點為所述第二 Web瀏覽器602時,查詢所述存儲介質2,找到與所述第二 Web瀏覽器602的地址信息相匹配的Websocket數據傳輸通道, 并通過找到的所述Websocket數據傳輸通道,將所述應用數據轉發(fā)給所述第二 Web瀏覽器 602 ;CN 102546800 A
所述其他TCP協(xié)議收發(fā)模塊5,用于當所述目標節(jié)點為所述后端服務器7時,根據所述后端服務器7的地址信息,在所述網關與所述后端服務器7之間建立基于TCP連接的數據傳輸通道,并通過建立的所述基于TCP連接的數據傳輸通道,將所述應用數據發(fā)送給所述后端服務器7 ;所述其他TCP協(xié)議收發(fā)模塊5還用于將所述后端服務器7的地址信息保存到所述存儲介質2中。
本實施例的Web通信系統(tǒng)中,通過網關與Web瀏覽器建立Wiebsocket連接,并獲取和保存Web瀏覽器的地址信息,可以實現Web瀏覽器之間,以及Web瀏覽器到后端服務器之間的全雙工高效通信。
需要說明的是,上述實施例一至實施例七中的相應技術特征可以相互參考。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。
最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的范圍。
權利要求
1.一種網關握手的方法,其特征在于,包括網關接收網頁Web瀏覽器的握手消息,所述握手消息中攜帶有協(xié)議升級請求以及所述 Web瀏覽器的地址信息;所述網關根據所述協(xié)議升級請求,將所述Web瀏覽器與所述網關之間的應用層協(xié)議, 由超文本傳輸協(xié)議HTTP改為網頁套接字協(xié)議ffebsocket,使所述Web瀏覽器與所述網關之間建立Websocket數據傳輸通道;所述網關將所述Web瀏覽器的地址信息保存到存儲介質中。
2.權利要求1所述的方法,其特征在于,所述Web瀏覽器的地址信息包括用戶組標識 ID、用戶ID、網絡協(xié)議IP地址及端口。
3.權利要求1或2所述的方法,其特征在于,所述方法還包括 所述網關關閉所述Websocket數據傳輸通道。
4.一種網關的通信方法,其特征在于,包括網關接收第一 Web瀏覽器發(fā)送給第二 Web瀏覽器的數據包,所述數據包中攜帶有應用數據及所述第二 Web瀏覽器的地址信息;所述網關查詢存儲介質,找到與所述第二 Web瀏覽器的地址信息相匹配的網頁套接字協(xié)議Websocket數據傳輸通道;所述網關通過找到的所述Websocket數據傳輸通道,將所述應用數據轉發(fā)給所述第二 W^eb瀏覽器。
5.權利要求4所述的方法,其特征在于,所述第二Web瀏覽器的地址信息包括用戶組 ID、用戶ID、IP地址及端口。
6.一種網關的通信方法,其特征在于,包括網關接收Web瀏覽器發(fā)送給后端服務器的數據包,所述數據包中攜帶有應用數據及所述后端服務器的地址信息;所述網關根據所述后端服務器的地址信息,在所述網關與所述后端服務器之間建立基于傳輸控制協(xié)議TCP連接的數據傳輸通道,并將所述后端服務器的地址信息保存到存儲介質中;所述網關通過建立的所述基于TCP連接的數據傳輸通道,將所述應用數據發(fā)送給所述后端服務器。
7.如權利要求6所述的通信方法,其特征在于,所述后端服務器的地址信息包括協(xié)議類型、服務器IP地址及服務器端口。
8.—種網關,其特征在于,包括協(xié)議引擎模塊及存儲介質,所述協(xié)議引擎模塊包括 請求接收單元,用于接收Web瀏覽器的握手消息,所述握手消息中攜帶有協(xié)議升級請求以及所述Web瀏覽器的地址信息;協(xié)議轉換單元,用于根據所述協(xié)議升級請求,將所述Web瀏覽器與所述網關之間的應用層協(xié)議,由超文本傳輸協(xié)議HTTP改為網頁套接字協(xié)議ffebsocket,使所述Web瀏覽器與所述網關之間建立Websocket數據傳輸通道;存儲單元,用于將所述Web瀏覽器的地址信息保存到所述存儲介質中。
9.如權利要求8所述的網關,其特征在于,保存到所述存儲介質中的所述Web瀏覽器的地址信息包括用戶組ID、用戶ID、IP地址及端口。
10.如權利要求8或9所述的網關,其特征在于,所述存儲介質為非易失性存儲器。
11.如權利要求8至10任一所述的網關,其特征在于,所述協(xié)議引擎模塊還包括 監(jiān)控單元,用于關閉所述Websocket數據傳輸通道。
12.一種網關,其特征在于,包括接收模塊、轉發(fā)模塊及存儲介質;所述接收模塊用于接收第一 Web瀏覽器發(fā)送給第二 Web瀏覽器的數據包,所述數據包中攜帶有應用數據及所述第二 Web瀏覽器的地址信息;所述存儲介質保存有與所述網關建立有網頁套接字協(xié)議Websocket數據通道的Web瀏覽器的地址信息;所述轉發(fā)模塊用于查詢所述存儲介質,找到與所述第二 Web瀏覽器的地址信息相匹配的Websocket數據傳輸通道,并通過找到的所述Websocket數據傳輸通道,將所述應用數據轉發(fā)給所述第二 Web瀏覽器。
13.—種網關,其特征在于,包括接收模塊、其他TCP協(xié)議收發(fā)模塊及存儲介質;所述接收模塊用于接收Web瀏覽器發(fā)送給后端服務器的數據包,所述數據包中攜帶有應用數據及所述后端服務器的地址信息;所述其他TCP協(xié)議收發(fā)模塊,用于根據所述后端服務器的地址信息,在所述網關與所述后端服務器之間建立基于TCP連接的數據傳輸通道,并通過建立的所述基于TCP連接的數據傳輸通道,將所述應用數據發(fā)送給所述后端服務器,所述其他TCP協(xié)議收發(fā)模塊還用于將所述后端服務器的地址信息保存到所述存儲介質中。
14.一種Web通信系統(tǒng),其特征在于,包括網關,后端服務器; 所述網關包括協(xié)議引擎模塊、接收模塊、轉發(fā)模塊及存儲介質; 所述協(xié)議引擎模塊包括請求接收單元,用于分別接收第一 Web瀏覽器、第二 Web瀏覽器、第NWeb瀏覽器的握手消息,所述握手消息中攜帶有協(xié)議升級請求以及所述第一 Web瀏覽器、所述第二 Web瀏覽器或所述第NWeb瀏覽器的地址信息,其中,N為自然數;協(xié)議轉換單元,用于根據所述協(xié)議升級請求,分別將所述第一 Web瀏覽器、所述第二 Web瀏覽器和/或所述第NWeb瀏覽器與所述網關之間的應用層傳輸協(xié)議由超文本傳輸協(xié)議 HTTP改為網頁套接字協(xié)議ffebsocket,使所述第一 Web瀏覽器、所述第二 Web瀏覽器和/或所述第NWeb瀏覽器與所述網關之間建立Websocket數據傳輸通道;存儲單元,用于將所述第一 Web瀏覽器、所述第二 Web瀏覽器和/或所述第NWeb瀏覽器的地址信息保存到所述存儲介質中;所述接收模塊,用于接收所述第一 Web瀏覽器發(fā)送給目標節(jié)點的數據包,所述數據包中攜帶有應用數據及所述目標節(jié)點的地址信息;所述轉發(fā)模塊,用于當所述目標節(jié)點為所述第二 Web瀏覽器時,查詢所述存儲介質,找到與所述第二 Web瀏覽器的地址信息相匹配的Websocket數據傳輸通道,并通過找到的所述Websocket數據傳輸通道,將所述應用數據轉發(fā)給所述第二 Web瀏覽器。
15.如權利要求14所述的通信系統(tǒng),其特征在于,所述網關還包括其他TCP協(xié)議收發(fā)模塊;所述其他TCP協(xié)議收發(fā)模塊,用于當所述目標節(jié)點為所述后端服務器時,根據所述后端服務器的地址信息,在所述網關與所述后端服務器之間建立基于TCP連接的數據傳輸通道,并通過建立的所述基于TCP連接的數據傳輸通道,將所述應用數據發(fā)送給所述后端服務器。
16.如權利要求15所述的通信系統(tǒng),其特征在于,所述其他TCP協(xié)議收發(fā)模塊還用于將所述后端服務器的地址信息保存到所述存儲介質中。
全文摘要
本發(fā)明實施例公開一種網關握手的方法包括網關接收網頁Web瀏覽器的握手消息,所述握手消息中攜帶有協(xié)議升級請求以及所述Web瀏覽器的地址信息;所述網關根據所述協(xié)議升級請求,將所述Web瀏覽器與所述網關之間的應用層協(xié)議,由超文本傳輸協(xié)議HTTP改為網頁套接字協(xié)議Websocket,使所述Web瀏覽器與所述網關之間建立Websocket數據傳輸通道;所述網關將所述Web瀏覽器的地址信息保存到存儲介質中。本發(fā)明還公開了一種網關通信方法、網關及Web通信系統(tǒng),采用本發(fā)明的技術方案,使得Web瀏覽器之間,或者Web瀏覽器與局域網內的后端服務器之間,能夠通過網關進行直接全雙工的高效通信。
文檔編號H04L29/08GK102546800SQ201210004360
公開日2012年7月4日 申請日期2012年1月6日 優(yōu)先權日2012年1月6日
發(fā)明者關國鋒, 朱建峰, 范家星 申請人:華為技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
敦化市| 岢岚县| 集贤县| 迭部县| 兰州市| 子洲县| 孝感市| 民丰县| 砀山县| 甘孜县| 会同县| 无极县| 浮山县| 沅江市| 平定县| 无为县| 南汇区| 郴州市| 分宜县| 白城市| 浦东新区| 大安市| 乌海市| 五寨县| 油尖旺区| 金华市| 剑河县| 九龙县| 旬邑县| 高唐县| 平安县| 黄石市| 资溪县| 云林县| 临桂县| 佛教| 邻水| 西盟| 郑州市| 博客| 麻栗坡县|