Laravel broadcasting

2019-06-02  本文已影响0人  ariazeng

Laravel broadcasting

配置 broadcasting

如果想在你的laravel项目中使用到广播系统,就需先修改一些配置文件和进行一些操作。

// laravel 官方提供的pusher辅助开发包
composer require pusher/pusher-php-server "~3.0"
  
// laravel 官方提供的前端开发辅助包  
npm install --save laravel-echo pusher-js
  1. 修改 config/app.php中的
App\Providers\BroadcastServiceProvider::class

将这行代码的注释打开

  1. 修改.env文件
BROADCAST_DRIVER=pusher

Boradcasting-hello world

  1. 创建Event
php artisan make:event SayHelloEvent
  1. 将 Events/SayHelloEvent 实现 ShouldBroadcast
class SayHelloEvent implements ShouldBroadcast
  1. 注册pusher(我用的是github账户登录),创建自己的app,这步不难,pusher有新手引导,然后点进App keys ,复制信息到laravel项目的.env文件
  2. 将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的值

开启监听

Echo.channel('SayHello') // 这里是频道名称
    .listen('SayHelloEvent', (e) => { // 这里是事件名称 
            // 这里处理监听的逻辑
            // 这里只是打印到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 中查看信息

上一篇下一篇

猜你喜欢

热点阅读