使用 WebSocket

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

本主题介绍如何将 WebSocket 与 Apigee 和 Apigee Hybrid 搭配使用。

简介

很多情况下需要实时进行网络互动,例如游戏、通信、金融交易和其他高吞吐量活动。

WebSocket 是一种协议,可通过单个 TCP 连接在网络客户端与网络服务器之间提供全双工通信通道。WebSocket 协议使用 HTTP 协议在客户端与服务器之间建立连接。建立后,客户端和服务器会使用 WebSocket 协议来发送和接收数据。

WebSocket 规范和协议由 W3C 维护。

支持在 Apigee 中使用 WebSocket

在 Apigee 和 Apigee Hybrid 中,环境组提供到环境的路由,并定义公开 API 代理的主机名。环境组以原生方式支持 HTTP 和 WS 协议。您无需创建特殊环境组或任何特殊配置即可使用 WebSocket。而是由客户端通过添加 Upgrade 请求标头来请求将协议从 HTTP 升级到 WS。向 API 代理端点发出的升级请求会返回 101 Switching Protocols 响应。其他请求和响应将在开放 WebSocket 连接上双向进行,直到关闭为止。

政策支持

通过 WebSocket 连接,您只能在 API 代理中使用“验证 API 密钥和 OAuthV2 政策”。所有其他政策均会被忽略。

撤消连接

在以下情况下,会关闭 WebSocket 连接:

  • 代理端点收到的请求没有 API 密钥或 OAuth 令牌。
  • 代理端点收到的请求包含已过期或无效的 API 密钥或 OAuth 令牌。
  • WebSocket 连接超时。

使用跟踪记录和分析

在调试工具中,对于每个 WebSocket 连接,您将看到一个请求,其中包含 101 状态,如以下屏幕截图所示:

调试工具中具有 101 状态的请求。

在 Apigee 分析信息中心中,您将看到每个 WebSocket 会话的流量计数。会话期间发生的往返流量不会显示在信息中心内。

WebSocket 应用示例

如需了解详情,您可以参阅 GitHub 上正常运行的 websocket-sample 应用。此示例演示如何通过 WebSocket 连接调用 API 代理。代理会调用在 Kubernetes 集群中部署的简单后端目标应用。