2015-09-15 5 views
5

Ich habe versucht, meine Anwendung mit EXRM freizugeben. Die ganze App arbeitet mit Ausnahme WebSockets diePhoenix EXRM Release Websockets funktioniert nicht

Dies ist der Fehler im Browser gestartet werden (Chrome)

WebSocket-Verbindung zu ‚ws: // localhost: 4001/Buchse/websocket Token = undefined‘ist fehlgeschlagen: Fehler bei der WebSocket-Handshake: unerwarteten Antwortcode: 403

Es scheint, dass der Variable token könnte ein Problem sein. Wenn Sie mit Mix phoenix.server beginnen, funktioniert alles super. Aber mit Befehlen freigegeben:

$ mix deps.get 
$ mix compile 
$ MIX_ENV=prod mix digest 
$ MIX_ENV=prod mix release 
$ ./rel/project/bin/project 

Könnte es sein, etwas in Bezug auf einige Schritte von mir verpasst oder ist es Phoenix beantwortet.

Antwort

6

Es scheint, dass in prod.exs Konfigurationsdatei die url Option ist verantwortlich für das Filtern der Websocket-Verbindungen, um sie nur aus der Domäne zu ermöglichen. Aus diesem Grund erlaubt es nur Verbindungen von der eingestellten URL, aber nicht von anderen einschließlich localhost.

So Versionen testen lokal URL eingestellt werden muss:

url: [host: "127.0.0.1", port: 4001], 
+1

Ja, genau. Wir müssen eine Herkunftskontrolle durchführen, damit Angreifer nicht von externen Seiten auf Ihren Websocket zugreifen können. Sie sollten auch Fehlermeldungen in Ihrem Terminal gesehen haben. –