WebSocket 發起單個請求,服務端不須要等待客服端,客戶端在任什麼時候候也能發消息到服務端,減小了輪詢時候的延遲.經歷一次鏈接後,服務器能給客戶端發屢次。下圖是輪詢與WebSocket的區別。html
基於http的實時消息是至關的複雜,在無狀態的請求中維持回話的狀態增長了複雜度,跨域也很麻煩,使用ajax處理請求有序請求須要考慮更多。經過ajax進行交流也不簡單。每個延伸http功能的目的不是增長他的複雜度。websocket 能夠大大簡化實時通訊應用中的連接。
Websocket是關於標準
Websocket是一種底層網絡協議,可讓你在這個基礎上創建別的標準協議。好比在WebSocket的客戶端的基礎上使用XMPP登陸不一樣的聊天服務器,由於全部的XMPP服務理解相同的標準協議。WebSocket是web應用的一種創新。
爲了與其餘平臺競爭,WebSocket是H5應用提供的一部分先進功能。每一個操做系統都須要網絡功能,可以讓應用使用Sockets與別的主機進行通訊,是每一個大平臺的核心功能。在不少方面,讓Web應用表現的像操做系統平臺是html5的趨勢。像socket這樣底層的網絡協議APIs不會符合原始的安全模型,也不會有web api那樣的設計風格。WebSocket給H5應用提供TCP的方式不會消弱網絡安全且有現代的Api。
WebSocket是Html5平臺的一個重要組件也是開發者強有力的工具。簡單的說,你須要WebSocket建立世界級的web應用。它彌補了http不適合實時通訊的重大缺陷。異步、雙向通訊模式,經過傳輸層協議使WebSocket具備廣泛靈活性。想象一下你能用WebSocket建立正真實實時應用的全部方式。好比聊天、協做文檔編輯、大規模多人在線遊戲(MMO),股票交易應用等等。
WebSocket是一個協議,但也有一個WebSocket API,這讓你的應用去控制WebSocket的協議去響應被服務端觸發的事件。API是W3C開發,協議是IETE制定。現代瀏覽器支持WebSocket API,這包括使用全雙工和雙向連接的方法和特性。讓你執行像打開關閉連接、發送接收消息、監聽服務端事件等必要操做。
第二章會給出這些Api的更多細節和使用實例。
WebSocket協議可以讓客戶端和遠程服務端經過web創建全雙工通訊。支持傳輸二進制字符串和文本字符串,協議包含打開握手以後的基本消息框架。
第三章會描述更多協議的細節,向你展現如何建立本身的WebSocket服務器。
大量的可選的WebSocket服務器、開發者社區以及無數正在使用WebSocket的應用體現了WebSocket的火熱,已有大量已經實現的WebSocket服務器,例如Apache mod_pywebsocket, Jetty, Socket.IO 和 Kaazing’s WebSocket Gateway. 這本書的靈感來自於分享咱們多年在Kaazing項目中處理WebSocket及相關技術的知識和經驗。Kaazing被做爲企業級WebSocket網關服務器和它的客戶端庫已經超過5年。
社區:
《The Definitive Guide to HTML5 WebSocket》 翻譯。html5
轉:http://www.cnblogs.com/stoneniqiu/p/5357444.htmlweb