auraeq / pubnub-laravel
PubNub的php库的Laravel 4包装器
Requires
- php: >=5.3.0
- illuminate/support: ~4.1
- pubnub/pubnub: dev-master
This package is auto-updated.
Last update: 2022-02-01 12:35:39 UTC
README
注意 这是一个测试版本。
这是一个优秀的、干净的、面向对象的Laravel 4包装器,用于PubNub糟糕的php库。
基础库的所有(有用的)公共方法都已包装并暴露,带有适当的参数、一致的返回值,以及实际的异常而不是难以理解的数组错误。
有两个方法未包装或暴露:`history()` 和 `detailedHistory()`,因为它们返回一个完全无元数据的消息数组,实际上并不那么有用。
以下是一些还需要完成的事情。你有时间和大脑吗?提交一个pull请求!
- 编写一些测试。不确定如何最好地进行,我们需要以某种方式模拟PubNub调用。
- 你一次不能与多个频道一起工作;这是基础库的限制,但也许可以解决这个问题?
- 我对这种阻塞架构不是专家。可能存在更好的方法来实现`subscribe()`方法,但在这个阶段我不确定。
- 也许可以找出history和detailedHistory方法。
- `presence()`方法似乎不起作用,至少在我的简要测试中是这样的。我认为它只是坏掉了?关于这一点
- 也许停止包装基础库,而是完全重写整个东西,因为坦白说,它到底在做什么。
安装
要安装,将软件包添加到您的`composer.json`文件中
"require" : { ... "aura/pubnub-laravel" : "dev-master" ... }
然后运行`composer update`。
将以下内容添加到您的`config/app.php`文件中的`'providers'`部分
'Aura\PubnubLaravel\PubnubLaravelServiceProvider',
然后添加以下内容到您的`config/app.php`文件中的`'aliases'`部分
'Pubnub' => 'Aura\PubnubLaravel\Facades\PubnubLaravelFacade'
您还希望发布配置文件
php artisan config:publish aura/pubnub-laravel
然后至少配置您的`'origin'`、`'publish_key'`和`'subscriber_key'`。
用法
设置频道
Pubnub::setChannel('channel');
您还可以按如下方式为每个方法单独设置频道。如果您尝试在不设置频道的情况下使用方法,将抛出`PubnubChannelException`。
发布消息
Pubnub::publish($message[, $channel]);
成功时返回`true`或失败时抛出`PubnubPublishFailedException`。
注意 此方法为阻塞。它将永远不会结束,直到出现错误、您从回调中返回false或PHP超时(我想)。
订阅消息
Pubnub::subscribe(Closure $callback[, $channel]);
成功时返回`true`或失败时抛出`PubnubSubscribeFailedException`。
还有一个具有相同签名的`presence()`方法,它应该通知您已订阅的频道中的到来/离开,但它似乎不起作用(见上面的注释)。
查看当前订阅者
Pubnub::hereNow([$channel]);
返回Pubnub的UUID数组。