我正在使用Jelastic作为我的开发环境(尚未投入生产)。我的应用程序正在使用Unicorn运行,但我发现了ActionCable的websockets并将其集成到了我的应用程序中。
在本地一切都运行正常,但是当我部署到我的Jelastic环境中(使用默认的NGINX / Unicorn配置)时,在我的javascript控制台中出现了这个消息,并且在访问日志中看不到任何内容。
WebSocket connection to 'ws://dev.myapp.com:8080/' failed: WebSocket is closed before the connection is established.
我以前在本地环境上遇到过这个问题,通过在我的配置文件中添加所需的ActionCable.server.config.allowed_request_origins来解决了它。因此,我又仔细检查了我的开发配置,发现没有问题。
这就是为什么我想知道NGINX配置是否有特定的要求,除了ActionCable git页面上解释的内容之外。
bundle exec puma -p 28080 cable/config.ru
对于我的应用程序,我遵循了这里的所有内容,但没有提到NGINX配置的内容。
我知道使用ActionCable的websocket还相当新,但我希望有人能给我一些指引。
非常感谢。
config/redis/cable.yml
,以便将生产URL设置为默认的本地主机行之外的其他内容。我在生产中使用Heroku,由于ActionCable使用Redis,因此我向我的应用程序添加了Heroku-Redis插件,并从我的Heroku环境变量中使用了ENV ['REDIS_URL']
。我阅读了您的问题并想提到我所做的其他事情,超出了您尝试过的范围。注意:在我测试的所有设备中,仅有2个设备可以在生产环境下工作:( - Jake Smith