我正在尝试创建一个公开 ActionCable 频道的 gem,但我无法让它工作。
这是我的宝石
# lib/my_channel.rb
class MyChannel < ActionCable::Channel::Base
def wait(data)
# logic ...
end
end
# lib/engine.rb
module MyApp
class Engine < ::Rails::Engine
isolate_namespace MyApp
end
end
然后我将 gem 添加到我的主要应用程序Gemfile
中,运行bundle install
,启动控制台并运行MyChannel
。这不会产生和错误,这意味着该通道已正确包含。
然后我将它添加到我的主应用程序中
// application.js
var socket = "ws://localhost:3000/cable";
var cable = ActionCable.createConsumer(socket);
cable.subscriptions.create({ "channel": "MyChannel" }, {
received: function(){
// ...
}
});
但我收到了这个错误
Subscription class not found ({"command"=>"subscribe", "identifier"=>"{\"channel\":\"MyChannel\"}"})
我错过了什么?