fragen stichworte

Wie führt man einen Parse Live Query Server (Web Sockets) hinter einem AWS Load Balancer aus?

ParseLiveQuery hängt von Websockets ab. Im Allgemeinen könnte es sich bei dieser Frage darum handeln, dass Web-Sockets hinter einer AWS-ELB funktionieren.

Ich verwende den in AWS konfigurierten neuen Parse-Server mit Elastic Beanstalk (EB). EB konfiguriert eine EC2-Instanz hinter einem Load Balancer, und wir benötigen eine automatische Skalierung, um zu funktionieren. Der Parse Server funktioniert sehr gut.

Ich konfiguriere unseren Server für die Verwendung der neuen Parse Live Query-Implementierung, die WebSockets verwendet.

  1. Vor Ort habe ich alles am Laufen.
  2. Meine iOS-Client-App stellt eine Verbindung her und funktioniert, wenn ich den LiveQueryClient direkt mit dem öffentlichen DNS einer unserer ParseServer-Instanzen verbinde. z.B. http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com
  3. Ich bin jedoch nicht großartig genug, um zu verstehen, warum unser LiveQuery-Code durch den DNS-Eintrag von Load Balancer nicht funktioniert. z.B. http://parseserver-xxxxxx-env.us-east-1.elasticbeanstalk.com

Ich erhalte die Fehlermeldung 404, wenn ich den Client auf Load Balancer verweise: Error Domain=SRWebSocketErrorDomain Code=2132 "received bad response code from server 404"

antworten

Wenn es lokal funktioniert - zB um den LB herumzugehen, dann würde ich annehmen, dass der LB nicht konfiguriert ist, um Anforderungen an die Backend-Server an diesem Port zu übergeben. Ihre LB benötigt einige neue Regeln, um den Datenverkehr an die von Ihnen unterstützten Hosts basierend auf dem Zielport zu leiten, den Ihr Dienst überwacht. Weitere Informationen hierzu finden Sie in AWS.

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

Es sieht so aus, als ob Websockets in AWS ELB nicht offiziell unterstützt werden. Daher müssen Sie möglicherweise eine der aktuellen Problemumgehungen verwenden  https://forums.aws.amazon.com/thread.jspa?messageID=589328