auraeq/pubnub-laravel

该软件包已被废弃,不再维护。未建议替代软件包。

PubNub的php库的Laravel 4包装器

0.1-beta 2014-05-28 22:03 UTC

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数组。