使用 WebSocket

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

本主題將說明如何在 Apigee 和 Apigee hybrid 中使用 WebSockets

簡介

許多情況下,網頁互動都需要即時發生,例如遊戲、通訊、金融交易和其他高吞吐量活動。

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

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

Apigee 支援 WebSocket

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

政策支援

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

撤銷連結

WebSocket 連線會在下列情況下關閉:

  • Proxy 端點會收到未附帶 API 金鑰或 OAuth 權杖的要求。
  • Proxy 端點收到含有過期或無效 API 金鑰或 OAuth 權杖的要求。
  • WebSocket 連線逾時。

使用追蹤記錄和數據分析

在偵錯工具中,您會看到每個 WebSockets 連線都有一個含有 101 狀態的請求,如以下螢幕截圖所示:

在偵錯工具中,要求 101 狀態。

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

WebSocket 應用程式範例

如需更多資訊,請參閱 GitHub 上的WebSocket 範例應用程式。本範例將示範如何透過 WebSockets 連線呼叫 API Proxy。代理程式會呼叫部署在 Kubernetes 叢集中的簡易後端目標應用程式。