WebSocket

WebSocket 是一種標準通訊協定,可讓 Web 瀏覽器(或用戶端應用程式)和 Web 伺服器應用程式使用一條全雙工連線進行通訊。

HTTP 並非設計成兩個應用程式之間的長久、即時、全雙工通訊。 在很多情況下,使用者的 Web 伺服器應用程式或 Servlet 希望是在長久、即時、全雙工的交談下,與用戶端瀏覽器或應用程式通訊。 換句話說,兩個應用程式希望彼此自由地讀取和寫入資料。 例如,像經常在股票交易員的 Web 瀏覽器上不斷顯示貨幣匯率變動的應用程式,就是這種類型的應用程式。 就涉及現有 HTTP 技術來達成這種通訊類型的現行解決方案來說,既繁瑣又效率差。 就瀏覽器與伺服器之間的持續雙向通訊來說,HTTP 解決方案大多由輪詢及/或兩條開啟的 HTTP 連線(僅處理單向資料流量)組成。

WebSocket 使用標準 HTTP 要求/回應順序來建立連線。 當建立連線時,WebSocket API 會提供讀取和寫入介面,經由以非同步全雙工方式建立的連線,來讀取和寫入資料。 WebSocket 也會提供介面,從任一端非同步地關閉連線。

由於 WebSocket 使用標準 HTTP 要求/回應順序來建立連線,連線起始作業會使用與 HTTP 連線相同的方式,經由防火牆和 Proxy 來連接。 WebSocket 需要全雙工通訊,包括在同一條連線上同時讀取和寫入。 WebSphere Web 伺服器外掛程式支援全雙工通訊,但其他防火牆和 Proxy 可能需要修改,才能啟用這項支援。 WebSocket 也可以使用 SSL,來進行安全連線與資料傳輸。 這種通訊協定使用 SSL 的方式,與 HTTP 通訊協定使用 SSL 的方式相同。

Liberty WebSocket 特性會實作下列規格:

Liberty 支援 WebSocket 1.0 和 WebSocket 1.1 規格。 相較於 WebSocket 1.0,WebSocket 1.1 支援以更健全的方式來指定訊息處理程式。