Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

关于 API Gateway 中的 WebSocket API

在 API Gateway 中,您可以创建 WebSocket API 作为 AWS 服务(例如 Lambda 或 DynamoDB)或 HTTP 终端节点的有状态前端。WebSocket API 根据从客户端应用程序收到的消息内容来调用您的后端。

与接收和响应请求的 REST API 不同,WebSocket API 支持客户端应用程序与后端之间的双向通信。后端可以向连接的客户端发送回调消息。

在 WebSocket API 中,传入的 JSON 消息将根据您配置的路由定向到后端集成。(非 JSON 消息将定向到您配置的 $default 路由。)

路由包含一个路由键,这是在评估路由选择表达式时预期的值。routeSelectionExpression 是在 API 级别定义的属性。它指定了预期存在于消息负载中的 JSON 属性。有关路由选择表达式的更多信息,请参阅路由选择表达式

例如,如果您的 JSON 消息包含一个 action 属性,并且您想要根据此属性执行不同操作,则您的路由选择表达式可能是 ${request.body.action}。您的路由表将通过将 action 属性的值与您在表中定义的自定义路由键值相匹配来指定要执行的操作。

可以使用三个预定义路由:$connect$disconnect$default。此外,您还可以创建自定义路由。

  • API Gateway 会在客户端和 WebSocket API 之间的持久连接处于启动状态时调用 $connect 路由。

  • API Gateway 会在客户端或服务器与 API 断开连接时调用 $disconnect 路由。

  • 如果找到匹配的路由,则 API Gateway 会在针对消息评估路由选择表达式之后调用自定义路由;匹配项确定调用哪个集成。

  • 如果无法针对消息评估路径选择表达式或未找到匹配的路由,则 API Gateway 会调用 $default 路由。

有关 $connect$disconnect 路由的更多信息,请参阅管理连接的用户和客户端应用程序:$connect 和 $disconnect 路由

有关 $default 路由和自定义路由的更多信息,请参阅调用您的后端集成:$default 路由和自定义路由

后端服务可以将数据发送到连接的客户端应用程序。有关更多信息,请参阅 从后端服务向连接的客户端发送数据