我正在尝试在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)
但浏览器控制台中没有打印任何内容。
我是否错过了一些设置配置?
由于
答案 0 :(得分:2)
我也遇到过这个。 documentation说:
从Rails应用程序内的任何位置广播到频道。现有控制器,模型,后台作业或新WebsocketRails控制器。
即。没有提到控制台。
根据我的经验,它的工作原理与控制器完全一样。
答案 1 :(得分:0)
我知道这个问题很老了,但项目有一些更新,所以对于今后来到这里的每个人来说,现在在实例之间使用Synchronization事件可以从任何地方触发,甚至可以从rails控制台触发。
将此添加到您的config/initializers/websocket_rails.rb
WebsocketRails.setup do |config|
config.synchronize = true
end