LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

WebSocket 簡(jiǎn)介

admin
2015年7月10日 18:5 本文熱度 7521
你可以把 WebSocket 看成是 HTTP 協(xié)議為了支持長(zhǎng)連接所打的一個(gè)大補(bǔ)丁,它和 HTTP 有一些共性,是為了解決 HTTP 本身無(wú)法解決的某些問(wèn)題而做出的一個(gè)改良設(shè)計(jì)。在以前 HTTP 協(xié)議中所謂的 keep-alive connection 是指在一次 TCP 連接中完成多個(gè) HTTP 請(qǐng)求,但是對(duì)每個(gè)請(qǐng)求仍然要單獨(dú)發(fā) header;所謂的 polling 是指從客戶端(一般就是瀏覽器)不斷主動(dòng)的向服務(wù)器發(fā) HTTP 請(qǐng)求查詢是否有新數(shù)據(jù)。這兩種模式有一個(gè)共同的缺點(diǎn),就是除了真正的數(shù)據(jù)部分外,服務(wù)器和客戶端還要大量交換 HTTP header,信息交換效率很低。它們建立的“長(zhǎng)連接”都是偽.長(zhǎng)連接,只不過(guò)好處是不需要對(duì)現(xiàn)有的 HTTP server 和瀏覽器架構(gòu)做修改就能實(shí)現(xiàn)。

WebSocket 解決的第一個(gè)問(wèn)題是,通過(guò)第一個(gè) HTTP request 建立了 TCP 連接之后,之后的交換數(shù)據(jù)都不需要再發(fā) HTTP request了,使得這個(gè)長(zhǎng)連接變成了一個(gè)真.長(zhǎng)連接。但是不需要發(fā)送 HTTP header就能交換數(shù)據(jù)顯然和原有的 HTTP 協(xié)議是有區(qū)別的,所以它需要對(duì)服務(wù)器和客戶端都進(jìn)行升級(jí)才能實(shí)現(xiàn)。在此基礎(chǔ)上 WebSocket 還是一個(gè)雙通道的連接,在同一個(gè) TCP 連接上既可以發(fā)也可以收信息。此外還有 multiplexing 功能,幾個(gè)不同的 URI 可以復(fù)用同一個(gè) WebSocket 連接。這些都是原來(lái)的 HTTP 不能做到的。

另外說(shuō)一點(diǎn)技術(shù)細(xì)節(jié),因?yàn)榭吹接腥颂釂?wèn) WebSocket 可能進(jìn)入某種半死不活的狀態(tài)。這實(shí)際上也是原有網(wǎng)絡(luò)世界的一些缺陷性設(shè)計(jì)。上面所說(shuō)的 WebSocket 真.長(zhǎng)連接雖然解決了服務(wù)器和客戶端兩邊的問(wèn)題,但坑爹的是網(wǎng)絡(luò)應(yīng)用除了服務(wù)器和客戶端之外,另一個(gè)巨大的存在是中間的網(wǎng)絡(luò)鏈路。一個(gè) HTTP/WebSocket 連接往往要經(jīng)過(guò)無(wú)數(shù)的路由,防火墻。你以為你的數(shù)據(jù)是在一個(gè)“連接”中發(fā)送的,實(shí)際上它要跨越千山萬(wàn)水,經(jīng)過(guò)無(wú)數(shù)次轉(zhuǎn)發(fā),過(guò)濾,才能最終抵達(dá)終點(diǎn)。在這過(guò)程中,中間節(jié)點(diǎn)的處理方法很可能會(huì)讓你意想不到。

比如說(shuō),這些坑爹的中間節(jié)點(diǎn)可能會(huì)認(rèn)為一份連接在一段時(shí)間內(nèi)沒(méi)有數(shù)據(jù)發(fā)送就等于失效,它們會(huì)自作主張的切斷這些連接。在這種情況下,不論服務(wù)器還是客戶端都不會(huì)收到任何提示,它們只會(huì)一廂情愿的以為彼此間的紅線還在,徒勞地一邊又一邊地發(fā)送抵達(dá)不了彼岸的信息。而計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn)中又會(huì)有一層套一層的緩存,除非填滿這些緩存,你的程序根本不會(huì)發(fā)現(xiàn)任何錯(cuò)誤。這樣,本來(lái)一個(gè)美好的 WebSocket 長(zhǎng)連接,就可能在毫不知情的情況下進(jìn)入了半死不活狀態(tài)。

而解決方案,WebSocket 的設(shè)計(jì)者們也早已想過(guò)。就是讓服務(wù)器和客戶端能夠發(fā)送 Ping/Pong Frame(RFC 6455 - The WebSocket Protocol)。這種 Frame 是一種特殊的數(shù)據(jù)包,它只包含一些元數(shù)據(jù)而不需要真正的 Data Payload,可以在不影響 Application 的情況下維持住中間網(wǎng)絡(luò)的連接狀態(tài)。

該文章在 2015/7/10 18:05:29 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲欧美中文日韩二区一区 | 亚洲午夜成年在线网站 | 一级特黄大片欧美久久久 | 亚洲精品综合一二三区在线 | 亚洲欧洲国产精品片. | 亚洲香蕉免费有线视频 |