如何在 AWS Elastic Beanstalk 部署的 Java Web 应用程序中启用 WebSocket 请求

Posted

技术标签:

【中文标题】如何在 AWS Elastic Beanstalk 部署的 Java Web 应用程序中启用 WebSocket 请求【英文标题】:How to Enable WebSocket request in AWS Elastic Beanstalk deployed Java web application 【发布时间】:2018-05-25 20:23:56 【问题描述】:

首先,我是socket 编程和AWS beanstalk 的新手。 根据我的初步调查,我创建了AWS Elastic Beanstalk(EB) 不支持WebSocket。所以我需要在EB 上做一个解决方法来启用它。 我开发了一个带有WebSocket 通知请求的java 应用程序。当我部署到AWS EB WebSocket request-response 501 状态码时,它在本地机器上运行良好。我只是调查这个问题,我发现我们需要解决在EB 中启用WebSocket 请求。但我不知道它是怎么做的。我被困在这种情况下。我已经在我的EB 上启用了负载均衡器和安全证书。 如何在现有条件下启用WebSocket 请求而不失败?

我找到了一个解决方案但我怀疑它把这个链接中描述的配置文件放在哪里Solution

【问题讨论】:

【参考方案1】:

我不知道您正在运行的 java 应用程序,但我知道如何设置您的 Elastic Load Balancer 以使用 websockets。

首先,websockets 不能通过 CloudFront 工作,因此您需要设置一个单独的域(即 websockets.domain.com)直接指向您的负载均衡器,即 A 记录别名。

其次,为您的弹性负载均衡器设置一个新的侦听器以使用 TCP 和 SSL。通过 ACM 生成证书。

最后,更改您的 websocket 客户端以使用您的新域和端口。

【讨论】:

好的。我有一个疑问,当他打电话给他 websoket 时,蔡如何定义 wesoket uri。是否使用新的子域作为前缀? 您需要在 Route 53 或您托管域的任何地方进行设置。然后你需要用你的 websocket 客户端调用这个域。确保你也使用正确的端口。

以上是关于如何在 AWS Elastic Beanstalk 部署的 Java Web 应用程序中启用 WebSocket 请求的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS Elastic Beanstalk 上修改 Nginx 配置

如何在 AWS Elastic Beanstalk 上设置 HTTPS

如何在 AWS Elastic Beanstalk 上设置 HTTPS

如何在 AWS Elastic Beanstalk 中更改数据库配置

如何在 AWS Elastic Beanstalk 中选择特定平台?

如何使用 Elastic beanstalk 和 Dockerrun.aws.json 正确部署到 AWS?