2016-10-22 52 views
3

我试图让一个运行在弹性beanstalk上的.NET Core应用程序接收来自浏览器中的javascript的websockets连接。Elastic Beanstalk剥离Sec-WebSocket-Accept报头

当我在我的本地机器上测试AWS外的客户端和服务器时,我可以在两者之间建立一个websocket连接。但是,当我部署服务器弹性魔豆,我得到以下错误

WebSocket connection to 'ws://52.62.253.144/' failed: Error during WebSocket handshake: 'Sec-WebSocket-Accept' header is missing 

服务器用101个交换协议的答复,所以我知道该服务器正在尝试建立连接,但SEC-的WebSocket-Accept报头不见了。在本地进行测试时,此标头存在。

是否有可能弹性beanstalk从响应剥离Sec-WebSocket-Accept?它目前在“单实例”方案中配置,而不是自动调整。

在此先感谢

回答

2

同样的事情发生在我身上在Tomcat/Java项目,它终于通过切换ELB协议TCP/SSL固定。 The official documentation告诉你如何切换它们,你可以试试这个,让我知道。

+0

+1。我们还有一个应用程序使用ElasticBeanstalk部署的web-sockets,并且我们将'ListenerProtocol'切换到TCP/SSL以使其工作。 – endertunc

+0

我正在尝试应用程序负载平衡器,这是AWS建议我用于websockets的方法,但我仍然遇到同样的错误。我试过启用会话粘性。当我绕过负载均衡器并直接命中IP时,我也遇到同样的错误。 EB处于单实例模式。没有我做的似乎工作:( – ChrisBellew

+0

修正了它!我不得不在IIS 8上安装Websockets,通过转到服务器管理器>管理>添加角色和功能> Web服务器>应用程序开发> Websockets。希望这可以帮助别人! – ChrisBellew