actioncableでチャット機能を作ろうと思っているのですが、アラートが表示されなかったりconsolelogのメーセージが表示されません。いろいろ調べてみたのですが、解決しなかったので質問させていただきます。
stream_fromも設定していますしどこが問題なのか教えていただきたいです。
/app/channels/room_channel.rb class RoomChannel < ApplicationCable::Channel def subscribed stream_from "room_channel" end def unsubscribed # Any cleanup needed when channel is unsubscribed end def speak(data) ActionCable.server.broadcast 'room_channel', message: data['message'] end end
/app/javascripts/channels/room_channel.js import consumer from "./consumer" const appRoom = consumer.subscriptions.create("RoomChannel", { connected() { // Called when the subscription is ready for use on the server }, disconnected() { // Called when the subscription has been terminated by the server }, received(data) { console.log('connected') return alert(data['message']); }, speak: function(message) { return this.perform('speak', {message: message}); } }); window.addEventListener("keypress", function(e) { if (e.keyCode === 13) { appRoom.speak(e.target.value); e.target.value = ''; e.preventDefault(); } })
route mount ActionCable.server => '/cable'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/27 03:07