【问题标题】:Deploying Rails ActionCable using AWS Elastic Beanstalk使用 AWS Elastic Beanstalk 部署 Rails ActionCable
【发布时间】:2016-09-18 07:09:33
【问题描述】:

我正在尝试在 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'

有什么想法吗?谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby amazon-web-services actioncable


    【解决方案1】:

    我通过添加到我的 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

    【讨论】:

    • 您好,您必须在 AWS 上进行外部配置吗?
    猜你喜欢
    • 2019-11-22
    • 2015-09-20
    • 2016-10-12
    • 2020-08-02
    • 2014-12-25
    • 2019-09-25
    • 2016-09-24
    • 2012-09-24
    • 2013-08-31
    相关资源
    最近更新 更多