來源百度百科
WebSocket是一種在單個TCP連接上進行全雙工通信的協(xié)議。WebSocket通信協(xié)議于2011年被IETF定為標(biāo)準(zhǔn)RFC 6455,并由RFC7936補充規(guī)范蛀骇。WebSocket?API也被W3C定為標(biāo)準(zhǔn)。
WebSocket使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單勉抓,允許服務(wù)端主動向客戶端推送數(shù)據(jù)吨述。在WebSocket API中,瀏覽器和服務(wù)器只需要完成一次握手歧寺,兩者之間就直接可以創(chuàng)建持久性的連接燥狰,并進行雙向數(shù)據(jù)傳輸。
背景
很多網(wǎng)站為了實現(xiàn)推送技術(shù)斜筐,所用的技術(shù)都是輪詢缀辩。輪詢是在特定的的時間間隔(如每1秒)偎快,由瀏覽器對服務(wù)器發(fā)出HTTP請求暇藏,然后由服務(wù)器返回最新的數(shù)據(jù)給客戶端的瀏覽器焚刚。這種傳統(tǒng)的模式帶來很明顯的缺點,即瀏覽器需要不斷的向服務(wù)器發(fā)出請求嗤练,然而HTTP請求可能包含較長的頭部榛了,其中真正有效的數(shù)據(jù)可能只是很小的一部分,顯然這樣會浪費很多的帶寬等資源潭苞。
而比較新的技術(shù)去做輪詢的效果是Comet忽冻。這種技術(shù)雖然可以雙向通信,但依然需要反復(fù)發(fā)出請求此疹。而且在Comet中,普遍采用的長鏈接,也會消耗服務(wù)器資源蝗碎。
在這種情況下湖笨,HTML5定義了WebSocket協(xié)議,能更好的節(jié)省服務(wù)器資源和帶寬蹦骑,并且能夠更實時地進行通訊慈省。
輪詢
輪詢(Polling)是一種CPU決策如何提供周邊設(shè)備服務(wù)的方式,又稱“程控輸入輸出”(Programmed I/O)眠菇。輪詢法的概念是:由CPU定時發(fā)出詢問边败,依序詢問每一個周邊設(shè)備是否需要其服務(wù),有即給予服務(wù)捎废,服務(wù)結(jié)束后再問下一個周邊笑窜,接著不斷周而復(fù)始。
含義
輪詢是基站為終端分配帶寬的一種處理流程登疗,這種分配可以是針對單個終端或是一組終端的排截。為單個終端和一組終端連接分配帶寬,實際上是定義帶寬請求競爭機制辐益,這種分配不是使用一個單獨的消息断傲,而是上行鏈路映射消息中包含的一系列分配機制。
輪詢是基于終端的智政,帶寬的請求總是基于CID认罩,而分配則是基于終端。