如何在AWS负载均衡器后面运行Parse Live Query Server(Web套接字)?

ParseLiveQuery依赖于Websockets。 更一般地说,这个问题可能是让Web套接字在AWS ELB后面工作。

我正在使用Elastic Beanstalk(EB)在AWS中configuration的新Parse Server。 EB在Load Balancer后面configuration了一个EC2实例,我们需要自动扩展才能工作。 分析服务器工作得很好。

我正在configuration我们的服务器来使用使用WebSocket的新的Parse Live Query实现。

  1. 本地我有一切工作。
  2. 如果我将LiveQueryClient直接连接到我们的一个ParseServer实例的公有DNS,我的iOS客户端应用程序将连接并工作。 例如http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com
  3. 但是,我不太了解,为什么我们的LiveQuery代码无法通过Load Balancer DNS条目工作。 例如http://parseserver-xxxxxx-env.us-east-1.elasticbeanstalk.com

我得到一个404错误,如果我把客户端指向负载均衡器: Error Domain=SRWebSocketErrorDomain Code=2132 "received bad response code from server 404"

如果它在本地工作 – 例如绕过LB,那么我猜测LB没有configuration为将请求传递到该端口上的后端服务器。 您的LB将需要一些新的规则来根据您的服务正在监听的目标端口将stream量路由到您支持的主机,请参阅AWS获取更多帮助

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-add-or-delete-listeners.html

它看起来像AWS ELB正式支持WebSockets,所以你可能需要使用当前的解决方法之一https://forums.aws.amazon.com/thread.jspa?messageID=589328