環境
(backend)
php 7.1.3
laravel 5.7
pusher/pusher-php-server 3.0
https://pusher.com/ ←こちらも使用
(front)
vue.js 2.5.17
laravel-echo 1.5.2
pusher-js 4.3.1
上記を利用し、プライベートチャットアプリ機能の作成中です
(broadcast)
問題点
最終的にはこのようにオンラインのuser情報を取得したいが、console.logに何も表示されない
//vueファイル,created関数の中 Echo.join('Chat') .here((users) => { console.log(users); })
ファイルの中身
//.env BROADCAST_DRIVER=pusher PUSHER_APP_ID=(自分のid) PUSHER_APP_KEY=(自分のkey) PUSHER_APP_SECRET=(自分のkey) PUSHER_APP_CLUSTER=eu MIX_PUSHER_APP_KEY="${自分のkey}" MIX_PUSHER_APP_CLUSTER="${eu}"
//broadcasting.php 'pusher' => [ 'driver' => 'pusher', 'key' => env('PUSHER_APP_KEY'), 'secret' => env('PUSHER_APP_SECRET'), 'app_id' => env('PUSHER_APP_ID'), 'options' => [ 'cluster' => env('PUSHER_APP_CLUSTER'), 'encrypted' => true, ], ],
//BroadcastServiceProvider.php <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Broadcast; class BroadcastServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { Broadcast::routes(['middleware' => ['auth:api']]); require base_path('routes/channels.php'); } }
//channels.php Broadcast::channel('Chat', function ($user) { var_dump("yyyyy"); //ちなみにここのvar_dumpは表示されない return $user; });
//bootstrap.js import Echo from 'laravel-echo' window.Pusher = require('pusher-js'); window.Echo = new Echo({ broadcaster: 'pusher', key: "自分のkey", cluster: "eu", encrypted: true, });
//vueでの表示部分 created() { console.log("created内") //これは表示される Echo.join('Chat') .here((users) => { console.log(users); //何も表示されない }) }
ちなみにpusherサイト上のoverviewでは、loginユーザーを増やすとデータが反映していることを確認しております。
エラーも特に出ず、ただ情報が取れないので困っていますので、こちらで質問させていただきました。
宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。