Ruby on rails heroku上的Actioncable有问题
您好首先一如既往地感谢您抽出时间阅读我的帖子 在heroku上使用actioncable/ApplicationJob的步骤是什么,因为它现在在本地运行,但在heroku上使用时,它不起作用,我希望能得到一些帮助Ruby on rails heroku上的Actioncable有问题,ruby-on-rails,ruby,heroku,ruby-on-rails-5,sidekiq,Ruby On Rails,Ruby,Heroku,Ruby On Rails 5,Sidekiq,您好首先一如既往地感谢您抽出时间阅读我的帖子 在heroku上使用actioncable/ApplicationJob的步骤是什么,因为它现在在本地运行,但在heroku上使用时,它不起作用,我希望能得到一些帮助 2017-02-02T20:14:30.+00:00 app[web.1]: [ActionCable] [test@gmail.com] Could not execute command from {"command"=>"message", "identifier"=&
2017-02-02T20:14:30.+00:00 app[web.1]: [ActionCable] [test@gmail.com] Could not execute command from {"command"=>"message", "identifier"=>"`{\"channel\":\"RoomChannel\"}", "data"=>"\"message:
message\""}) [NoMethodError - undefined method 'except' for "message: message":String 2017-02-02T20:14:30.+00:00 app[web.1]: Did you mean? exec]:
/app/vendor/bundle/ruby/2.3.0/gems/actioncable-5.0.0.1/lib/action_cable/channel/base.rb:266:in 'block in action_signature'
/app/vendor/bundle/ruby/2.3.0/gems/actioncable-5.0.0.1/lib/action_cable/channel/base.rb:265:in 'tap' | /app/vendor/bundle/ruby/2.3.0/gems/actioncable-5.0.0.1/lib/action_cable/channel/base.rb:265:in 'action_signature' | /app/vendor/bundle/ruby/2.3.0/gems/actioncable-5.0.0.1/lib/action_cable/channel/base.rb:168:in 'perform_action' |
更新:我添加了sidekiq链接,并在我的Procfile中设置了worker
worker:bundleexecsidekiq-c3-qdefault,运行scale命令启动它。重新启动日志中的heroku服务器,它说sidekiq处于活动状态,但我仍然收到此错误,我现在知道此错误是由于
活动工单未拾取的事实
更新2:我添加了一些console.logs来监控本地主机上的数据,我得到了所有连接、接收的数据,但在heroku上我没有,我试图传递数据,以便sidekiq能够捕捉到它,并且该部分似乎能够捕捉到它,因此得出结论,actioncable执行了\u action/bg/message部分
当被推到heroku时,它不起作用。我希望有人知道这个问题的答案,这将是非常棒的。如果你需要更多信息,请告诉我
我有一个message.rb模型,在那里我有一个perform_-later动作
after_create_commit { BroadcastMessageJob.perform_later self }
在广播消息中
class BroadcastMessageJob < ApplicationJob
queue_as :default
def perform(message)
ActionCable.server.broadcast 'room_channel', render_message(message)
end
private
def render_message(message)
ApplicationController.renderer.render message
end
end
class BroadcastMessageJob
通过此设置,它可以在本地上工作,但在heroku上仍然不工作。
我错过了什么
先谢谢你