实时触发Rails的骨干事件

时间:2014-11-16 13:46:07

标签: javascript ruby-on-rails backbone.js

我正在使用RoR,Backbone,并且我使用sidekiq有一个服务器端功能,因此我的Redis数据库实时更新。当sidekiq更改数据库属性时,我需要触发我的主干事件。 Sidekiq函数位于app / assets / workers目录中。基本上我需要来自Rails /app/assets/workers/worker.rb我可以在app / assets / javascripts / backbone / models / monster.js.coffee实时触发我的Backbone集合。当sidekiq实时更新数据库中的属性时,对于Backbone,一切都是静默的,我的集合不会实时更改。如果我刷新页面,它会更新。 如何实时触发Rails应用程序的Backbone事件?我是否需要使用另一个框架或者仅仅在rails中使用它?

1 个答案:

答案 0 :(得分:7)

开箱即用的Rails不提供此功能,因此您需要自定义解决方案。我建议您查看Faye,这是一个通过Faye gem轻松与Rails集成的发布/订阅消息系统。

要完成您想要的任务,您需要根据文档设置Faye服务器。在浏览器中,您需要按照here所述创建客户端。使用浏览器客户端,您可以订阅和收听频道上的消息。在后端,当您的Sidekiq工作人员完成并更新相关数据时,您可以在Faye频道上发布消息。在浏览器客户端收到消息后,您可以随意执行任何操作,包括在Backbone集合上触发事件。希望这会有所帮助。