でアクションケーブルでの作業中に、私は私のプログラムを実行するたびに、私は、問題に直面しています、私はSubscription
クラスConversationChannel
サブスクリプションクラスのMyChannel "ActionCable
が見つかりませんというエラーを受信して、私が送信しようとすると見つからないサブスクリプションクラス を、私はこのログに
を取得したメッセージが正常のWebSocket(のWebSocket:GET、 HTTP_CONNECTION:アップグレード、HTTP_UPGRADE REQUEST_METHOD):にアップグレード "ConversationChannelは" { "コマンド" =>からのコマンドを実行できませんでした"message"、"{\" message \ ":\" conversation_id \ "、\" ConversationChannel \ "} \ "value \":\ "2 \"}、{\ "name \":\ "amitian_id \"、\ "value \":\ "1 \"}、{\ "name \":\ "body \ {"channel": "ConversationChannel"}サブスクリプションが見つかりませんでした。[RuntimeError - 識別子が のサブスクリプションを見つけることができませんでした。 "、"値 ":\"値\ ":\" "}]: C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.1/lib/action_cable/connection/subscriptions.rb:74:
find' | C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.1/lib/action_cable/connection/subscriptions.rb:53:in
perform_action '| C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.1/lib/action_cable/connection/subscriptions.rb:17:execute_command' | C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.1/lib/action_cable/connection/base.rb:88:in
dispatch_websocket_message '| C:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.1/lib/action_cable/server/worker.rb:58: `ブロック内の呼び出しに」
ConversationChannel.rb
class ConversationChannel < ApplicationCable::Channel
def subscribed
# stream_from "some_channel"
stream_from "conversations-#{current_amitian.id}"
end
def unsubscribed
# Any cleanup needed when channel is unsubscribed
stop_all_streams
end
def speak(data)
message_params = data['message'].each_with_object({}) do |el, hash|
hash[el.values.first] = el.values.last
end
ActionCable.server.broadcast(
"conversations-#{current_amitian.id}",
message: message_params
)
end
end
conversation.js
App.conversation = App.cable.subscriptions.create("ConversationChannel", {
connected: function() {
},
disconnected: function() {
},
received: function(data) {
console.log(data['message']);
},
speak: function(message) {
return this.perform('speak' , {
message: message
});
}
});
$(document).on('submit', '.new_message', function(e) {
e.preventDefault();
var values = $(this).serializeArray();
App.conversation.speak(values);
$(this).trigger('reset');
});
connection.rb
module ApplicationCable
class Connection < ActionCable::Connection::Base
identified_by :current_amitian
def connect
self.current_amitian = find_verified_amitian
end
protected
def find_verified_amitian
if(current_amitian = env['warden'].amitian)
current_amitian
else
reject_unauthorized_connection
end
end
end
end
上記のログファイルを使用すると誰も私のconversation_channel.rb
ファイルが見つからない理由を教えていただけますか?
を行う必要があります..あなたがあなたのファイル名が 'ConversationChannel.rb'であることを言及していないあなたのポストに任意のヘルプ –
の。そうじゃないの?ファイル名にタイプミスがないか確認してください。 –