Tomcat 7的WebSocket實作(上)
本文覆寫了以下内容:
1)Web通信的演進
2)WebSocket
3)WebSocket在Apache Tomcat 7的實作
4)怎樣用Jaggery開發WebSocket特性
Tomcat 7中引入了WebSocket實作。下面我們先了解WebSocket的優缺點,其次簡要介紹Apache Tomcat 7的WebSocket實作。
WebSocket的演進過程如圖所示:

要知道在Tomcat 6中要實作雙向HTTP通信,需要使用Tomcat的Comet處理子產品。Comet有以下局限:
1)HTTP協定本身是請求/響應協定,而不是雙向協定
2)代理和其它中間媒介不會工作的很好
3)在任何給定的時間隻有某個方向的資料包傳輸
4)Servlet開發者要使用多線程很難
Servlet 3.0版引入了一個新特征:異步Servlet。我們把它與用戶端的Ajax調用進行比較。異步Servlet會把請求懸挂起,直到響應準備好傳遞,無需在容器中使用worker線程。WebSockets是另一個嘗試标準化的技術,它支援HTTP之上的異步、事件驅動和全雙工通信。
WebSocket給我們帶來了如下特性:
1)通過更新/交換HTTP協定,在HTTP之上提供全雙工通信
2)基于消息/幀的通信
3)可以與代理和中間媒介一起工作
4)還可以不與代理和中間媒介一起工作
WebSocket的優點:
1)WebSocket是理想的,用戶端和伺服器之間不再需要長期運作的會話
2)WebSocket是HTTP協定之上的全雙工通信
3)由于WebSocket是HTTP握手初始化之後的TCP之上的協定,是以你隻需做兩件事:
發送消息
接收消息