pushman / phplib
Pushman.dfl.mn PHP 库
2.4
2015-06-07 19:37 UTC
Requires
- guzzlehttp/guzzle: ^5.0@dev
Requires (Dev)
- phpspec/phpspec: ~2.0
README
Pushman PHP 库
安装
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
将始终返回一个包含 status
和 message
以及您事件的其他任何相关信息的 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 添加端点支持。
- 添加某种特质/接口,以便您可以将它附加到现有的用户模型上,并轻松地向该特定用户广播。