天天看點

Tomcat 7的WebSocket實作(上)

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 7的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之上的協定,是以你隻需做兩件事:

發送消息

接收消息