本頁內容適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
本主題將討論如何搭配使用 WebSockets 與 Apigee 和 Apigee Hybrid。
簡介
在許多情況下,網頁互動需要即時進行,例如遊戲、通訊、金融交易和其他高輸送量活動。
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 連線逾時。
使用偵錯和數據分析功能
在「偵錯」工具中,每個 WebSocket 連線都會顯示一個要求,並附上 101 狀態。
在 Apigee Analytics 資訊主頁中,您會看到每個 WebSocket 工作階段的流量計數。工作階段期間來回傳輸的流量不會顯示在資訊主頁中。
WebSocket 應用程式範例
如要瞭解詳情,請參閱 GitHub 上的運作中 websocket-sample 應用程式。這個範例會示範如何透過 WebSockets 連線呼叫 API Proxy。Proxy 會呼叫部署在 Kubernetes 叢集中的簡單後端目標應用程式。