ActionCable无法调用定期计时器

时间:2016-05-03 11:33:33

标签: ruby-on-rails actioncable

这在Rails中没有记录,但ActionCable有一个名为PeriodicTimers的模块 https://github.com/rails/rails/blob/master/actioncable/lib/action_cable/channel/periodic_timers.rb

现在我app/channels/requests_channel.rb试图通过以下方式对此进行测试:

class RequestsChannel < ApplicationCable::Channel
  periodically :transmit_status, every: 2.seconds

  def subscribed
      stream_from "requests_#{current_user.id}"
  end

  def unsubscribed
  end

  private

  def transmit_status
    puts "ping"
  end
end

当我连接并订阅流时,控制台中没有任何内容。我觉得ActionCable中的代码是相当直接的,这应该可行,但我无法让它工作。有人有这方面的经验吗?

1 个答案:

答案 0 :(得分:0)

在Rails 5.2.0中,两者

  periodically every: 5.seconds do
    transmit payload: 'some_payload'
  end

然后

periodically :transmit_device_status, every: 5.seconds

def transmit_device_status
  transmit payload: 'some_payload'
end

第一次尝试为我工作。我不能告诉你为什么它最初对你没用,对不起,但是它可能对其他人有帮助,因为这是我发现的关于该主题的极少数帖子之一。