3

我正在尝试在 AWS Elastic Beanstalk 上部署来自 DHH 的聊天演示。我已经按照这里的教程:https ://keithpblog.wordpress.com/2015/12/30/rails-5-tutorial-chat-app-can-we-deploy-it我已经设法得到解决方案部署在单个实例中,Redis 也启动并运行。但是当我尝试发布某些内容时,消息会保存在数据库中,但不会由 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/actioncable-5.0.0.rc1/ lib/action_cable/server/configuration.rb:37:in `rescue in pubsub_adapter'

/opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.rc1/lib/action_cable/server/configuration.rb:34:in `pubsub_adapter'

我的 Gemfile 中也有: gem 'redis', '~>3.2'

有任何想法吗?谢谢!

4

1 回答 1

2

我通过添加到我的 Gemfile 来修复错误:

gem 'em-hiredis'
gem 'redis'

我必须做的另一个改变是在 /environments/production.rb

config.action_cable.url = 'ws://url.com/cable'
config.action_cable.allowed_request_origins = ['http://url.com']

有了这个,我在 Elastic Beanstalk 上启动并运行了 actioncable

于 2016-05-21T09:04:03.940 回答