pushman/phplib

Pushman.dfl.mn PHP 库

2.4 2015-06-07 19:37 UTC

This package is auto-updated.

Last update: 2024-09-08 15:20:18 UTC


README

Pushman PHP 库

Latest Stable Version Total Downloads Latest Unstable Version License

安装

composer require pushman/phplib

使用

use Pushman\PHPLib\Pushman;
$pushman = new Pushman('private-key-goes-here');

$response = $pushman->push('kittens_are_cute', 'public', ['foo' => 'asdasdasdasd']);

自 Pushman 版本 2.1.0 开始,您可以通过向 channels 变量传入一个数组来推送多个通道。

use Pushman\PHPLib\Pushman;
$pushman = new Pushman('private-key-goes-here');

$response = $pushman->push('kittens_are_cute', ['public', 'auth'], ['foo' => 'asdasdasdasd']);

在您的 own pushman 实例上

use Pushman\PHPLib\Pushman;
$pushman = new Pushman('private-key-goes-here, ['url' => 'http://pushman.yoursite.com']);

$response = $pushman->push('kittens_are_cute', 'public', ['foo' => 'asdasdasdasd']);

$response 将始终返回一个包含 statusmessage 以及您事件的其他任何相关信息的 JSON 负载。

扩展 Laravel

您还可以通过在您的 config/app.php 文件中包含 Pushman ServiceProvider 来扩展 Laravel 的 event() 功能。在您的 app.php 文件中添加服务提供程序 Pushman\PHPLib\PushmanServiceProvider,然后在您的 .env 文件中添加以下键

PUSHMAN_PRIVATE=60_char_private_token_here
PUSHMAN_URL=http://pushman.yoursite.com

在您的 config/broadcasting.php 文件中稍后,在 connections 下方添加 Pushman 设置

'pushman' => [
    'driver'  => 'pushman',
    'private' => env('PUSHMAN_PRIVATE'),
    'url'     => env('PUSHMAN_URL'),
],

从那时起,您可以使用 php artisan make:event {Name} 来创建 Laravel 事件,在该事件中实现 ShouldBroadcast,然后在您的 broadcastOn 函数中返回您想要广播的通道数组。

示例

php artisan make:event UserCreated - 当用户被创建时调用。

$user = new User([
	'name' => 'James Duffleman',
	'email' => 'george@duffleman.co.uk',
	'password' => bcrypt('aPassword')
]);

event(new UserCreated($user));
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class UserCreated extends Event implements ShouldBroadcast {

    public $user;

    public function __construct($user)
    {
        $this->user = $user;
    }
    
    public function broadcastOn()
    {
        return ['public'];
    }
}

获取信息

由于 Pushman 每隔 60 分钟生成您的公共令牌,因此更新您的客户端应是一个自动过程。您可以使用以下代码获取任何通道的公共令牌。

use Pushman\PHPLib\Pushman;
$pushman = new Pushman('private-key-goes-here');

$response = $pushman->token('public');
$token = $response['token'];

您可以通过 channels()channel() 方法加载所有通道信息。

use Pushman\PHPLib\Pushman;
$pushman = new Pushman('private-key-goes-here');

$response = $pushman->channel('auth');
$max_connections = $response['max_connections'];

$response = $pushman->channels();
foreach($response as $channel) {
	echo("Found channel {$channel['name']}.\n");
}

未来版本的待办事项

  • 为 /api/subscribers 添加端点支持。
  • 添加某种特质/接口,以便您可以将它附加到现有的用户模型上,并轻松地向该特定用户广播。