cavaon-wayne/pusher-php-client

Cavaon pusher for Laravel project

v2.0.0 2019-08-22 09:15 UTC

This package is not auto-updated.

Last update: 2024-09-28 08:00:21 UTC


README

安装

composer require cavaon-wayne/pusher-php-client

Laravel 5.5 使用包自动发现,因此不需要您手动添加 ServiceProvider。

Laravel 5.5+

如果您不使用自动发现,请将 ServiceProvider 添加到 config/app.php 中的 providers 数组

Cavaon\Pusher\ServiceProvider::class,

如果您想更方便地访问 Pusher 或 Event 类,请在 app.php 中的 facades 添加以下内容

'CavaonPusher' => Cavaon\Pusher\Facade::class,
'CavaonEvent'  => Cavaon\Pusher\Events\Event::class,

使用方法

在使用之前,请记住在 config/broadcasting.php 中设置您的 App Id 和 App secret,它们通过 cavano-pusher-server 的 .env 文件分配给您

        'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_KEY'), //ANY DUMMPY STRING WILL DO
            'secret' => env('PUSHER_SECRET'), //YOUR SECRET HERE
            'app_id' => env('PUSHER_APP_ID'), //YOUR APP ID HERE
            'options' => [
                "host"=>env('PUSHER_HOST'), // YOUR PUSHER SERVER HERE, eg 'http://192.168.1.1'
                "port"=>env('PUSHER_HOST_PORT'), //YOUR PUSHER SERVER PORT HERE, eg '37037'
            ],
        ],

您需要获取由该 Pusher 生成的 JWT 令牌和 APP Id,并将它们传递给您的 socket.io 客户端

$wsHostURL=CavaonPusher::getHostURL();
$token=CavaonPusher::getToken();

以下是如何在您的 socket.io 客户端中使用它们的示例

var socket = io('{{$wsHostURL}}',{
    rememberUpgrade:true,
    query:{
        channel:"[your-channel-name]",
        token:"{{$token}}"
    },
});

socket.on('[your-event-name]', function(data){
    //use JSON.parse to decode the json string of data.
    console.log(data);
});

广播

向您的 socket.io 客户端广播事件

$data=["id"=>1,"name"=>"Sydney day tour","price"=>100.5];
event(new CavaonEvent('your-channnel-name','your-event-name',$data));

如果您不使用 sync 驱动程序来处理队列,请记住运行 make queue listening

php artisan queue:listen