obaid / pushmanlib
Pushman.dfl.mn PHP 库
2.4
2015-06-07 19:37 UTC
Requires
- guzzlehttp/guzzle: ^5.0@dev
Requires (Dev)
- phpspec/phpspec: ~2.0
This package is not auto-updated.
Last update: 2024-09-18 18:17:18 UTC
README
Pushman PHP 库
安装
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 总是返回包含 status 和 message 以及有关您事件的任何其他相关信息的 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 的端点支持。
- 添加某种特质/接口,以便您可以将其附加到现有的用户模型中,并轻松地向该特定用户广播。