websocket rails使用频道推

时间:2013-08-26 16:18:08

标签: ruby-on-rails gem websocket push

我正在尝试在ROR应用程序中使用websocket-rails gem的推送机制。

我基本完成了以下工作。

我的application.js

//= require jquery
//= require jquery_ujs
//= require websocket_rails/main

$(function(){

  // connect to server like normal
  var dispatcher = new WebSocketRails('localhost:3000/websocket');

  // subscribe to the channel
  var channel = dispatcher.subscribe('products');

  // bind to a channel event
  channel.bind('new', function(data) {
    console.log('channel event received: ' + data);
  });
});

然后我在端口3000启动瘦服务器

然后我从rails console,我输入了以下命令。

WebsocketRails[:products].trigger(:new, Product.last)

但浏览器控制台中没有打印任何内容。

我是否错过了一些设置配置?

由于

2 个答案:

答案 0 :(得分:2)

我也遇到过这个。 documentation说:

从Rails应用程序内的任何位置广播到频道。现有控制器,模型,后台作业或新WebsocketRails控制器。

即。没有提到控制台。

根据我的经验,它的工作原理与控制器完全一样。

答案 1 :(得分:0)

我知道这个问题很老了,但项目有一些更新,所以对于今后来到这里的每个人来说,现在在实例之间使用Synchronization事件可以从任何地方触发,甚至可以从rails控制台触发。

将此添加到您的config/initializers/websocket_rails.rb

WebsocketRails.setup do |config|
  config.synchronize = true
end