【问题标题】:can I proxy AWS API Gateway WebSocket to WebSocket?我可以将 AWS API Gateway WebSocket 代理到 WebSocket 吗?
【发布时间】:2021-06-19 20:02:52
【问题描述】:

目前我正在使用 API Gateway 作为一种代理来简单地提供 https

https://random-aws-name.com => http://my-domain.com

路由是$default

集成设置为HTTP ANY -> http://my-domain.com

我现在必须在我的域上设置一个 Websocket 服务器,该服务器已经在 ws://my-domain.com 进行监听。我可以直接连接到这个套接字,但不能使用 AWS API Gateway

wss://random-aws-name.com => ws://my-domain.com

目前我遇到意外错误 400,使用 wscat

我尝试启用 API 网关日志记录,但没有看到任何日志到达

【问题讨论】:

  • 异常信息是什么?您还看到请求到达ws://my-domain.com 服务的日志吗?
  • 消息是错误:意外的服务器响应 (400) 我在 ws://my-domain.com 上没有看到任何日志,但我不能完全确定这是由于 API 网关还是中间任何拒绝连接的代理

标签: amazon-web-services websocket aws-api-gateway


【解决方案1】:

恕我直言,AWS API Gateway 只能提供 wss 端点并将请求路由到 HTTP 后端。如果我们已经有一个后端 websocket 服务器,我在 AWS API Gateway 中看不到执行此类路由的选项(尽管我很高兴被证明是错误的,因为我自己也有这样的要求。)。

我实际上尝试将 wss:// url 作为 Endpoint URL,但在部署 API 时出现错误,说 Invalid HTTP endpoint specified for URI

【讨论】:

    【解决方案2】:

    您当前使用的 API 网关很可能不是 WebSocket API,而是 HTTP API 或 REST API。 API Gateway 有不同的风格。您在部署时选择一种风格。您部署的风格很可能不是支持 WebSocket 连接的风格。

    根据此文档页面,代理 WebSocket 连接可能只是单向的(在页面底部的蓝色框中注明):https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-routes-integrations.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      • 2021-04-11
      • 2021-04-18
      • 1970-01-01
      • 2021-04-04
      相关资源
      最近更新 更多