Heroku上ActionCable的客户端没有收到数据

时间:2016-05-04 18:20:48

标签: ruby-on-rails ruby heroku ruby-on-rails-5 actioncable

我的rails(5.0.0beta4)(和actioncable)在本地运行良好。

但是在heroku上,浏览器似乎没有从actioncable流接收任何数据。

这是我的heroku设置:

我正在使用redis-to-go插件

production: &production
  adapter: redis
  url: redis://redistogo:[password]@hoki.redistogo.com:9079/
  host: hoki.redistogo.com
  port: 9079
  password: [password]
  inline: true
  timeout: 10

config/environments/production.rb

config.action_cable.url = "https://duewiz.herokuapp.com/cable"
config.action_cable.allowed_request_origins = ["https://duewiz.herokuapp.com",/http:\/\/duewiz.herokuapp.com.*/]

这里我尝试了wss和https协议,但都不起作用。

routes.rb mount ActionCable.server => '/cable'

并在app/assets/javascripts/channels/cable.coffee.erb

#= require action_cable
#= require_self
#= require_tree .
#
@App ||= {}
App.cable = ActionCable.createConsumer()

我在redis-to-go服务器上运行了redis-cli monitor,它打印出ActionCable.broadcast次来电的数据

在heroku日志中,我可以看到ActionCable广播

但我在浏览器中看不到任何变化,但在本地工作得很好。

我为每个部署运行heroku restart

我还记得有一件事我使用devise / warden进行身份验证(也适用于actioncable)

module ApplicationCable
    class Connection < ActionCable::Connection::Base
      identified_by :current_user

        def connect
          self.current_user = find_verified_user
          logger.add_tags 'ActionCable', current_user.email
        end

      protected
        def find_verified_user
          if verified_user = User.find_by(id: cookies.signed['user.id'])
            verified_user
          else
            reject_unauthorized_connection
          end
        end
    end
end

那么我应该如何在heroku上配置actioncable进行部署?

感谢您的帮助。

谢谢pdoherty926。我的浏览器控制台中没有javascript错误。

0 个答案:

没有答案