tomato-technologies/tomato-pusher-php

适用于 Laravel 项目的 Tomato 推送器

v1.0.2 2018-08-27 02:08 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:27:54 UTC


README

安装

composer require tomatotech/tomato_pusher_php

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

Laravel 5.5+

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

Tomato\Pusher\ServiceProvider::class,

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

'TomatoPusher' => Tomato\Pusher\Facade::class,
'TomatoEvent'  => Tomato\Pusher\Events\Event::class,

用法

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

    "tomato_pusher" => [
        'app_id' => env('TOMATO_PUSHER_APP_ID'),
        'app_secret' => env('TOMATO_PUSHER_APP_SECRET'),
    ],

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

$appId=TomatoPusher::getAppId();
//or $appId=config("services.tomato_pusher.app_id");
$token=TomatoPusher::getToken();

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

var socket = io('https://:37037/{{$appId}}',{
    rememberUpgrade:true,
    query:{
        channel:"{{your-channel-name}}",
        token:"{{$token}}"
    },
});

socket.on('{{your-event-name}}', function(data){
    console.log(data);
});

广播

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

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

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

php artisan queue:listen