Phoenix EXRM 发布 Websockets 不工作
Phoenix EXRM release Websockets not working
我已经尝试使用 EXRM 发布我的应用程序。除了无法启动的 WebSockets 之外,整个应用程序都在运行
这是浏览器的错误(Chrome)
WebSocket connection to 'ws://localhost:4001/socket/websocket?token=undefined' failed: Error during WebSocket handshake: Unexpected response code: 403
看来变量token
可能有问题。
当从 Mix phoenix.server
开始时,一切都很好。但是用命令发布:
$ mix deps.get
$ mix compile
$ MIX_ENV=prod mix digest
$ MIX_ENV=prod mix release
$ ./rel/project/bin/project
可能是我漏掉了一些步骤,或者是 Phoenix 相关的问题。
似乎在 prod.exs
配置文件中,url
选项负责过滤 websocket 连接以仅允许来自域的连接。因此它只允许来自集合 url 的连接,但不允许来自任何其他 包括本地主机 .
的连接
所以要在本地测试版本 url 必须设置为:
url: [host: "127.0.0.1", port: 4001],
我已经尝试使用 EXRM 发布我的应用程序。除了无法启动的 WebSockets 之外,整个应用程序都在运行
这是浏览器的错误(Chrome)
WebSocket connection to 'ws://localhost:4001/socket/websocket?token=undefined' failed: Error during WebSocket handshake: Unexpected response code: 403
看来变量token
可能有问题。
当从 Mix phoenix.server
开始时,一切都很好。但是用命令发布:
$ mix deps.get
$ mix compile
$ MIX_ENV=prod mix digest
$ MIX_ENV=prod mix release
$ ./rel/project/bin/project
可能是我漏掉了一些步骤,或者是 Phoenix 相关的问题。
似乎在 prod.exs
配置文件中,url
选项负责过滤 websocket 连接以仅允许来自域的连接。因此它只允许来自集合 url 的连接,但不允许来自任何其他 包括本地主机 .
所以要在本地测试版本 url 必须设置为:
url: [host: "127.0.0.1", port: 4001],