使用 WebSocket

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

本主題說明如何搭配 Apigee 和 Apigee Hybrid 使用 WebSockets

簡介

在許多情況下,網頁互動需要即時進行,例如遊戲、通訊、金融交易和其他高輸送量活動。

WebSocket 是一種通訊協定,可在網頁用戶端和網頁伺服器之間,透過單一 TCP 連線提供全雙工通訊管道。WebSocket 通訊協定會使用 HTTP 通訊協定,在用戶端和伺服器之間建立連線。建立連線後,用戶端和伺服器就會使用 WebSocket 通訊協定傳送及接收資料。

WebSockets 規格和通訊協定是由 W3C 維護。

Apigee 支援 WebSocket

在 Apigee 和 Apigee Hybrid 中,環境群組會提供環境的路由,並定義 API Proxy 公開的主機名稱。環境群組原生支援 HTTP 和 WS 通訊協定。您不必建立特殊環境群組或任何特殊設定,即可使用 WebSocket。而是由用戶端透過加入 Upgrade 要求標頭,要求將通訊協定從 HTTP 升級至 WS。向 API Proxy 端點發出的升級要求會傳回 101 Switching Protocols 回應。在開啟的 WebSockets 連線上,會雙向發出進一步的要求和回應,直到連線關閉為止。

政策支援

在握手完成前 (即 HTTP 101 回應傳回用戶端前),所有政策都會在 WebSocket 代理程式中運作。之後就不會執行任何政策,但握手前驗證的 OAuth 權杖仍會生效,如果權杖過期或遭到撤銷,連線就會中斷。

撤銷連結

在下列情況下,系統會關閉 WebSockets 連線:

  • Proxy 端點收到沒有 API 金鑰或 OAuth 權杖的要求。
  • Proxy 端點收到要求,但 API 金鑰或 OAuth 權杖已過期或無效。
  • WebSocket 連線逾時。

使用偵錯和數據分析功能

在「偵錯」工具中,每個 WebSockets 連線都會顯示一個要求,並附上 101 狀態

在 Apigee 數據分析資訊主頁中,您會看到每個 WebSocket 工作階段的流量計數。工作階段期間來回傳輸的流量不會顯示在資訊主頁中。

WebSocket 應用程式範例

如要瞭解詳情,請參閱 GitHub 上的運作中 websocket-sample 應用程式。這個範例說明如何透過 WebSocket 連線呼叫 API Proxy。Proxy 會呼叫部署在 Kubernetes 叢集中的簡單後端目標應用程式。