BS scoket
文章出處:http://hlpi.cn 作者:興邦開(kāi)發(fā)部
BS scoket
在瀏覽器中通過(guò)http僅能實(shí)現(xiàn)單向的通信,comet可以一定程度上模擬雙向通信,但效率較低,并需要服務(wù)器有較好的支持; flash中的socket和xmlsocket可以實(shí)現(xiàn)真正的雙向通信,通過(guò) flex ajax bridge,可以在javascript中使用這兩項(xiàng)功能. 可以預(yù)見(jiàn),如果websocket一旦在瀏覽器中得到實(shí)現(xiàn),將會(huì)替代上面兩項(xiàng)技術(shù),得到廣泛的使用.面對(duì)這種狀況,,HTML5定義了WebSocket協(xié)議,,能更好的節(jié)省服務(wù)器資源和帶寬并達(dá)到實(shí)時(shí)通訊。
WebSocket protocol ,。
現(xiàn)很多網(wǎng)站為了實(shí)現(xiàn)即時(shí)通訊,,所用的技術(shù)都是輪詢(polling)。輪詢是在特定的的時(shí)間間隔(如每1秒),,由瀏覽器對(duì)服務(wù)器發(fā)出HTTP request,,然后由服務(wù)器返回最新的數(shù)據(jù)給客戶端的瀏覽器。這種傳統(tǒng)的HTTP request 的模式帶來(lái)很明顯的缺點(diǎn) – 瀏覽器需要不斷的向服務(wù)器發(fā)出請(qǐng)求,,然而HTTP request 的header是非常長(zhǎng)的,,里面包含的有用數(shù)據(jù)可能只是一個(gè)很小的值,,這樣會(huì)占用很多的帶寬,。
而比較新的技術(shù)去做輪詢的效果是Comet – 用了AJAX。但這種技術(shù)雖然可達(dá)到全雙工通信,,但依然需要發(fā)出請(qǐng)求,。
在 WebSocket API,瀏覽器和服務(wù)器只需要做一個(gè)握手的動(dòng)作,,然后,,瀏覽器和服務(wù)器之間就形成了一條快速通道。兩者之間就直接可以數(shù)據(jù)互相傳送,。在此WebSocket 協(xié)議中,,為我們實(shí)現(xiàn)即時(shí)服務(wù)帶來(lái)了兩大好處:
1. Header
互相溝通的Header是很小的-大概只有 2 Bytes
2. Server Push
-- 興邦BS