我正在尝试将dhh的聊天演示部署到aws弹性beanstalk上。我遵循了这里的教程:https://keithpblog.wordpress.com/2015/12/30/rails-5-tutorial-chat-app-can-we-deploy-it并且我成功地将解决方案部署到单个实例中,并且redis也启动并运行。但是当我试图发布一些东西时,消息保存在db中,但websocket没有返回。我检查了production.log,可以看到以下错误消息:
E,[2016-05-20t20:33:52.676577 24281]错误--:出现异常-gem::loaderror(为Action Cable pubsub适配器指定了'redis',但未加载gem。将gem 'redis'
添加到您的gemfile(并确保其版本为action cable所要求的最低版本)。
e,[2016-05-20t20:33:52.676826 24281]错误-:/opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/action cable-5.0.0.rc1/lib/action-cable/server/configuration.rb:37:in“pubsub适配器中的救援”
/opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/action cable-5.0.0.rc1/lib/action-cable/server/configuration.rb:34:在“pubsub-adapter”中
我的gemfile中还有:
宝石'redis','~>3.2'
有什么想法吗?谢谢!
最佳答案
我通过添加到我的gemfile修复了错误:
gem 'em-hiredis'
gem 'redis'
我必须做的另一个更改是on/environments/production.rb
config.action_cable.url = 'ws://url.com/cable'
config.action_cable.allowed_request_origins = ['http://url.com']
有了这个,我就可以在弹性豆茎上跑步了
关于ruby-on-rails - 使用AWS Elastic Beanstalk部署Rails ActionCable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37356503/