Laravel broadcasting
配置 broadcasting
如果想在你的laravel項目中使用到廣播系統(tǒng)涛救,就需先修改一些配置文件和進行一些操作检吆。
// laravel 官方提供的pusher輔助開發(fā)包
composer require pusher/pusher-php-server "~3.0"
// laravel 官方提供的前端開發(fā)輔助包
npm install --save laravel-echo pusher-js
- 修改 config/app.php中的
App\Providers\BroadcastServiceProvider::class
將這行代碼的注釋打開
- 修改.env文件
BROADCAST_DRIVER=pusher
Boradcasting-hello world
- 創(chuàng)建Event
php artisan make:event SayHelloEvent
- 將 Events/SayHelloEvent 實現(xiàn) ShouldBroadcast
class SayHelloEvent implements ShouldBroadcast
- 注冊pusher(我用的是github賬戶登錄)程储,創(chuàng)建自己的app,這步不難摊灭,pusher有新手引導(dǎo)败徊,然后點進App keys ,復(fù)制信息到laravel項目的.env文件中
- 將resources/js/bootstrap.js文件中的
// import Echo from 'laravel-echo'
// window.Pusher = require('pusher-js');
// window.Echo = new Echo({
// broadcaster: 'pusher',
// key: process.env.MIX_PUSHER_APP_KEY,
// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
// encrypted: true
// });
將這段代碼的注釋去掉易阳,然后將其中的key和cluster改為自己.env文件中的pusher-key和pusher-cluster的值
開啟監(jiān)聽
Echo.channel('SayHello') // 這里是頻道名稱
.listen('SayHelloEvent', (e) => { // 這里是事件名稱
// 這里處理監(jiān)聽的邏輯
// 這里只是打印到console
console.log(e.order.name);
});
然后在welcome.blade.php文件中引入app.js 垦垂,因為app.js 會引入編譯 bootstrap.js
開始測試
去routes/web.php中添加
Route::get('/event', function () {
event(new \App\Events\SayHelloEvent("hello world"));
dd('Done');
});
然后開兩個瀏覽器沈自,一個訪問welcome.blade.php枯途,另外一個訪問/event忌怎,就可以看到 welcome.blade.php控制臺中呆躲,不停的有信息冒出來(無刷新)捶索,還可以去pusher.com/debug console 中查看信息