ruby-on-rails - Wisper:订阅者听不到广播

标签 ruby-on-rails publish-subscribe wisper

我在之前的问题中被推荐使用名为 Wisper 的 gem。我很高兴了解它,因为它正是我正在寻找的解决方案。从 Wisper 的文档中我无法理解的是听众如何注册自己。

这是我的代码:

应用程序/模型/subscription.rb

class Subscription < ActiveRecord::Base
include Wisper::Publisher

  def some_method
    # some code here
    broadcast(:subscription_paused)
  end
end

应用/模型/offer.rb

class Offer < ActiveRecord::Base
  def subscription_paused
    binding.pry # or whatever
  end
end

所以我对这里的这部分不是很确定。我尝试了多种订阅技术,但我认为归根结底是我没有真正理解它的这方面:

配置/初始化程序/wisper.rb

Wisper.subscribe(Offer.new)

我也试过了,类似wiki中的例子:

subscription = Subscription.new
subscription.subscribe(Offer.new)

我在这里错过了什么? (我不确定上面的代码是否应该放在初始化程序中。)

最佳答案

如果提供和订阅模型存在表,那么代码应该可以工作。

在 Rails 控制台中试试这个:

# class Subscription < ActiveRecord::Base
class Subscription
  include Wisper::Publisher

  def some_method
    # some code here
    broadcast(:subscription_paused)
  end
end

# class Offer < ActiveRecord::Base
class Offer
  def subscription_paused
    puts "jeijjj"
  end
end


Wisper.subscribe(Offer.new)

Subscription.new.some_method

它应该生成一个输出:

"jeijjj"

关于ruby-on-rails - Wisper:订阅者听不到广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28290783/

相关文章:

ruby-on-rails - 从 Rails 控制台运行迁移

ruby-on-rails - 使用 Susnpot Gem 进行 Solr 搜索

c# - Redis Pub/Sub ServiceStack,取消线程

python - 如何在 pyzmq 中使用 inproc 传输?

ruby-on-rails - rails wisper 正在测试中

ruby-on-rails - MongoDB - 过滤和计算大型集合以进行统计

ruby-on-rails - 什么是Restful路由?

meteor / Apollo : Set Up Redis Pubsub for Production?

ruby - Wisper 和 Grape 从 POST 请求返回结果