0

ParseLiveQuery depends on Websockets. More generically this question could be about getting web sockets to work behind an AWS ELB.

I'm using the new Parse Server configured in AWS using Elastic Beanstalk (EB). EB configures an EC2 instance behind a Load Balancer and we need auto-scaling to work. The Parse Server is working very well.

I'm configuring our server to use the new Parse Live Query implementation which uses WebSockets.

  1. Locally I have everything working.
  2. My iOS Client app will connect and work if I connect the LiveQueryClient directly to the Public DNS of one of our ParseServer instances. e.g. http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com
  3. However, I'm not awesome enough to understand why our LiveQuery code doesn't work through the Load Balancer DNS entry. e.g. http://parseserver-xxxxxx-env.us-east-1.elasticbeanstalk.com

I'm getting a 404 error if I point the client to the Load Balancer: Error Domain=SRWebSocketErrorDomain Code=2132 "received bad response code from server 404"

1 Answers1

1

If it works locally - eg, going around the LB then I would guess that the LB is not configured to pass requests to the backend servers on that port. Your LB will need some new rules to route traffic to you backed hosts based on the destination port your service is listening on, see AWS for more help with this

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

it looks like websockets are not officially supported on AWS ELB though, so you might need use one of the current workarounds https://forums.aws.amazon.com/thread.jspa?messageID=589328

Sum1sAdmin
  • 1,914
  • 1
  • 11
  • 20
  • The last part of your answer is the most helpful as this issue is definitely related to supporting web sockets through ELB. That forum post you referenced is very helpful and if I can pull the solution/workaround out of that I'll report back here. Thanks! – Chad Pavliska May 03 '16 at 15:39
  • @ChadPavliska can you help me how you configure it on AWS. I'm finding it complicated. All I have done is deployed Parse server on AWS using CLI tool. Now facing exact issue. – Asadullah Ali Aug 29 '16 at 15:47
  • Oh, my memory hurts. I just looked at my Elastic Beanstalk configuration and it's set to use nginx as the proxy. If you read through that forum post it does mention that nginx is a solution. – Chad Pavliska Aug 31 '16 at 14:49