4

我正在尝试在 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 控制台,我输入了以下命令。

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

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

我错过了一些设置配置吗?

谢谢

4

2 回答 2

2

我也遇到过这个。文档说:

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

即没有提到控制台。

以我的经验,它的工作原理与控制器描述的完全一样。

于 2013-09-25T09:51:41.640 回答
0

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

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

WebsocketRails.setup do |config|
  config.synchronize = true
end
于 2015-02-02T22:40:55.687 回答