問題タブ [laravel-echo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
laravel - Laravel Echo - default.a.channel は関数ではありません
リアルタイム通知を実装するために、プッシャーで Laravel Echo をセットアップしようとしています。
まず、Laravel Echo と Pusher をインストールしました。
この後 bootstrap.js
、コードのコメントを外しました(ガイドが言うように):
実行gulp
しましたが、ページにアクセスすると、次のエラーが発生します。
laravel - Pusher と Laravel Echo を使用したブロードキャスト
このチュートリアルを行っていますLaravel Echo の紹介。放送物は完璧に機能しています。コマンドを実行するたびにphp artisan chat:message "something"
。イベントがトリガーされ、データベースにデータが保存されます。しかし、Laravel Echoに移りましょう。私はたくさん試しましたが、どこにも行きません。私はエコーを入れまし/js/app.js
たが、ドキュメントにはそれが記載されてい/js/bootstrap.js
ます。私はチュートリアルに従っているので、/js/app.js
Echo is not shown data in log に入れました。を使用してubuntu
います。
テスト イベント:
チャットコマンドコードを送信:
ララベルエコー:
プッシャーからイベントを送信するたびにもう1つ。プッシャーは正しく送信できます。
laravel - Laravel イベントがブロードキャストされない
アプリのチャット/メッセージ機能に取り組んでいます。ユーザーがメッセージを送信すると、特定のイベントがトリガーされてブロードキャストされるようにします。pusher
次に、ドライバーを使用して、Laravel Echo がイベントのブロードキャスト チャンネルで Laravel Echo を介してイベントをリッスンするようにします。
Laravel Echo の実装を Vue コンポーネントに入れ、イベントを介してブロードキャストされたデータを取得したいと考えています。現在、イベントをプライベート チャネルまたはチャネルのみにブロードキャストすることはできません。
これが私がやったことです:
1) に構成を追加しました.env
。
2) に設定を追加bootstrap.js
:
3)認証チェックインを追加しましたApp\Providers\BroadcastServiceProvider
(ユーザーが今のところサインインしている場合はtrueを返すだけです):
App\Providers\BroadcastServiceProvider::class,
4)に追加App/config/app.php
。
5)名前付きApp\Events\UserSentMessage
でブロードキャストする Event を作成しました。また、にブロードキャストしようとしました。確認したところ、コントローラーのヘルパーへの呼び出しからイベントが発生していますが、ブロードキャストされていないようです。上記のコントローラーでメソッドを使用してみました。PrivateChannel
chat
Channel
event()
broadcast
6) 有効な Vue コンポーネントの Vue ライフサイクル フック内に以下を追加しましたmounted
(コンポーネントは期待どおりにデータなどをレンダリングしていますが、Laravel Echo atm では機能しません)。
また試してみました:
Vue コンポーネントは、指定されたチャネルに正常にサブスクライブしています。プッシャー デバッグ コンソールは、サブスクライブされていることを認識しましたが、トリガーされたイベントはブロードキャストされません。
イベントの放送に問題があるようです。broadcast()
ヘルパーではなく、ヘルパーを使用してみましたevent()
。
また、 経由で Laravel Echo でイベントにサブスクライブする場合Echo.private()
。チャンネル名の前に が付いているように見えるprivate
ので、(イベントで) という名前のチャンネルにもブロードキャストしようとしましたprivate-chat
。