ActionCableチャネルを公開する宝石を作成しようとしていますが、動作させることができません。ActionCableチャネルがレールプラグインの外側にアクセスできない
これは、私は、コンソールを起動し、MyChannel
を実行し、bundle install
を実行して、私のメインのアプリケーションGemfile
に宝石を追加私の宝石
# 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
です。これは、チャネルが適切に含まれていることを意味する、エラーを生じさせず、エラーを生じません。
私はその後、私のメインのアプリケーション
// 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\"}"})
を取得していますか?
あなたはどのバージョンのアクションキャベルですか? Rails Beta1? –
@JohnKaczはい、そうです。 – Oleander
MyChannelクラスで定義されたサブスクライブされたメソッドがないようです。ドキュメント([リンク](https://github.com/rails/rails/tree/master/actioncable#channel-example-1-user-appearances)から): "単に' App.cable.subscriptions.create'を呼び出す'AppearanceChannel#subscribed'を呼び出すサブスクリプションを設定します。 –