AWS Elasticbeanstalk WebSockets

时间:2016-09-22 13:20:02

标签: asp.net sockets amazon-web-services elastic-beanstalk

我在Amazon Web Services'Elasticbeanstalk(IIS配置的计算机)上部署了一个Asp.Net Web API项目。一切正常,除了WebSocket。为了更轻松地测试WebSocket,我在Chrome上使用Simple WebSocket Client扩展名。

当我向API发出请求时,我收到以下(错误)消息(我在开发者控制台的网络选项卡上观察到此消息):

WebSocket connection to 'ws://my_url' failed: Error during WebSocket handshake: Unexpected response code: 400

我没有找到足够的信息来解决这个问题。

我尝试启用Security Groups下所有端口和所有IP的所有入站/出站TCP连接。

我尝试创建一个空的Asp.Net Web API项目,该项目只有WebSockets的基本样本(只是向连接的用户发送消息)并将其部署到AWS上的全新环境和应用程序。

到目前为止没有任何工作。

我正在使用Microsoft's WebSockets,.NET Framework 4.5.1。

有哪些可行的解决方案?

2 个答案:

答案 0 :(得分:0)

如果您在弹性beanstalk中使用AWS Elastic Load Balancer,那么ELB不支持Web套接字,您必须应用解决方法。更改支持Websockets的Load Balancer顶级经典负载均衡器。

https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/

答案 1 :(得分:-1)

我通过在All TCP的{​​{1}}段上添加Inbound并使用服务器的IP地址而不是AWS创建的名称解决了这个问题。