这在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中的代码是相当直接的,这应该可行,但我无法让它工作。有人有这方面的经验吗?
答案 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
第一次尝试为我工作。我不能告诉你为什么它最初对你没用,对不起,但是它可能对其他人有帮助,因为这是我发现的关于该主题的极少数帖子之一。