美文网首页
Laravel broadcasting

Laravel broadcasting

作者: ariazeng | 来源:发表于2019-06-02 21:45 被阅读0次

    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 中查看信息

    相关文章

      网友评论

          本文标题:Laravel broadcasting

          本文链接:https://www.haomeiwen.com/subject/mvefxctx.html