Javascript Heroku的配置操作电缆-错误localhost:3000/电缆
我在Heroku上的Action Cable应用程序有问题: 到“ws://localhost:3000/cable”的WebSocket连接失败:连接建立中出错:net::ERR_connection_拒绝 My production.rb:Javascript Heroku的配置操作电缆-错误localhost:3000/电缆,javascript,ruby-on-rails,heroku,ruby-on-rails-5,actioncable,Javascript,Ruby On Rails,Heroku,Ruby On Rails 5,Actioncable,我在Heroku上的Action Cable应用程序有问题: 到“ws://localhost:3000/cable”的WebSocket连接失败:连接建立中出错:net::ERR_connection_拒绝 My production.rb: config.action_cable.url = "wss://NAME.herokuapp.com/cable" config.action_cable.allowed_request_origins = ['https://NAME.
config.action_cable.url = "wss://NAME.herokuapp.com/cable"
config.action_cable.allowed_request_origins = ['https://NAME.herokuapp.com', 'http://NAME.herokuapp.com']
我还尝试在cable.js中指定服务器:
@App ||= {}
App.cable = ActionCable.createConsumer("wss://NAME.herokuapp.com/cable")
我试图在development.rb中更改它以防万一,但没有任何帮助。Heroku仍在尝试连接到本地主机
我认为,另一个奇怪的事情与它毫无共同之处,那就是尽管一些js代码可以工作,但应用程序无法处理一些js代码,如:alert'test”或console.loghaha,我也尝试了assets:precompile
在localhost中,一切都可以完美地工作。知道heroku和设置有什么问题吗?在ActionCable开发期间,我记得您必须启动两台服务器进行电缆连接和Rails。我认为最终版本还不需要这样做 我的猜测是,Heroku实例上没有配置Redis,而在生产环境中,ActionCable依靠Redis进行服务器通信 要解决此问题,应执行以下操作: heroku插件:添加redistogo heroku配置| grep REDISTOGO|URL 在config/cable.yml中,将Redis url设置为给定的url。我想您也应该能够使用ENV['REDISTOGO_URL']来代替URL
让我知道这是否有帮助。如果它在本地工作,而不是远程工作,则可能是SSL问题。确保为安全websocket wss正确设置SSL端点:
此外,Heroku上有一篇关于如何设置Action Cable的优秀博客文章:。遗憾的是,本文没有提到为Heroku部署设置SSL端点的必要性。我设置了redis服务器,这不应该是问题所在,但无论如何还是要感谢您。我想这将告诉heroku如何连接到websocket中的正确服务器。