Websocket Rails使用频道推送

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)

但是在浏览器控制台上没有任何输出。

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

谢谢。

2个回答

2

我也遇到过这个问题。 文档 如下所述:

从Rails应用程序内部的任何地方广播到通道。现有控制器、模型、后台作业或新的WebsocketRails控制器。

即没有提到控制台。

根据我的经验,它可以在控制器中正常工作,就像文档所描述的一样。


没错,我也遇到了同样的问题,当我把代码放在控制器中时它可以正常工作。 - rjurado01
我能在模型上使用它吗? - Hamdan

0

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接