本頁內容適用於 Apigee 和 Apigee 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。當升級要求傳送至已連線至有效 WebSocket 後端的 API Proxy 時,目標會傳回 101 Switching Protocols 回應。在開放的 WebSockets 連線上,系統會雙向發出進一步的要求和回應,直到連線關閉為止。
政策支援
在完成信號交換 (也就是將 HTTP 101 回應傳回給用戶端) 之前,所有政策都會在 WebSocket Proxy 中運作。
之後系統不會執行任何政策,但仍會接受在交握前驗證的 OAuth 權杖,並在權杖過期或遭撤銷時中斷連線。
撤銷連結
在下列情況下,系統會關閉 WebSockets 連線:
- Proxy 端點收到沒有 API 金鑰或 OAuth 權杖的要求。
- Proxy 端點收到要求,但 API 金鑰或 OAuth 權杖已過期或無效。
- WebSocket 連線逾時。
使用偵錯和數據分析功能
在「偵錯」工具中,每個 WebSocket 連線都會顯示一個要求,並附上 101 狀態。
在 Apigee Analytics 資訊主頁中,您會看到每個 WebSocket 工作階段的流量計數。工作階段期間來回傳輸的流量不會顯示在資訊主頁中。
WebSocket 應用程式範例
如要瞭解詳情,請參閱 GitHub 上的運作中 websocket-sample 應用程式。這個範例會示範如何透過 WebSockets 連線呼叫 API Proxy。這個 Proxy 會呼叫部署在 Kubernetes 叢集中的簡單後端目標應用程式。