Ich versuche, eine Chat-App mit django-Kanälen zu erhalten, um mit einem Load Balancer an AWS Elastic Beanstalk zu arbeiten.Websocket-Fehler bei Verwendung von Elastic Beanstalk mit Django-Kanälen
Ich bin im Grunde modifizieren den Code von https://github.com/jacobian/channels-example mit Elastic Beanstalk arbeiten. Ich bin in der Lage, um es erfolgreich lokal laufen auf mit dem Befehl
python manage.py runserver
Das Problem ist, wenn ich es mit Elastic Beanstalk bereitstellen, erhalte ich die folgende Fehlermeldung, wenn der Chat-Anwendung
WebSocket connection to 'wss://mydomain.com/test/' failed: Error
during WebSocket handshake: Unexpected response code: 200
gestartet habe ich versucht, Lösungen bei https://stackoverflow.com/a/29831723/3667089 vorgeschlagen, aber es zeigte nur einen anderen Fehlercode
WebSocket connection to 'wss://mydomain.com/test/websocket' failed:
Error during WebSocket handshake: Unexpected response code: 404
ich bereits verändert auch die Load-Balancer-Listener-Port TCP 80 und erhalten ein SSL-Zertifikat, um den sicheren Listener-Port in SSL 443 zu ändern, aber immer noch denselben Fehler zu erhalten.
Ich lese auch Websockets with socket.io on AWS Elastic Beanstalk, aber es gibt keine Option, den Proxy-Server für Django zu konfigurieren, ich denke, es verwendet Apache standardmäßig.
Was fehlt mir bei der Konfiguration von Elastic Beanstalk, damit es funktioniert?
Gibt es eine Möglichkeit, dies zu ändern, damit wir Daphne-Server mit Asgi ausführen können?
Neustart Ich Kanäle auf einer AWS VPS ausgeführt wird, und ich hatte Supervisor zu verwenden, um es an die Arbeit. Die Channel-Dokumente sagen, dass Sie sowohl den Server ('venv/bin/daphne app.asgi: channel_layer') als auch die Worker (' python manage.py runwoker') ausführen müssen, um die Dinge zum Laufen zu bringen. Ich kann meine supervisord.conf in die Antworten posten, wenn Sie wollen, aber ich bin nicht sicher, wie die Dinge auf Elastic Beanstalk funktionieren. – Brobin
@Brobin Ja, das wird sehr geschätzt werden – user3667089
Sorry, wenn ich zu spät bin, aber kann ich wissen, welche Load Balancer Sie verwenden? Wenn es klassisch ist, unterstützt es nicht nativ Websockets. –