obaid/pushmanlib

Pushman.dfl.mn PHP 库

2.4 2015-06-07 19:37 UTC

This package is not auto-updated.

Last update: 2024-09-18 18:17:18 UTC


README

Pushman PHP 库

Latest Stable Version Build Status Total Downloads Latest Unstable Version License

安装

composer require obaid/pushmanlib

用法

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']);

在您的 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

您还可以通过将 Pushman ServiceProvider 包含在您的 config/app.php 文件中来扩展 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 的端点支持。
  • 添加某种特质/接口,以便您可以将其附加到现有的用户模型中,并轻松地向该特定用户广播。