spokela/pushy-sdk-php

此包已被废弃且不再维护。未建议替代包。

实时Web应用的发布/订阅系统(PHP SDK)

dev-master 2013-03-20 22:19 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:01:42 UTC


README

Pushy 是实时Web应用的发布/订阅系统。这是您在应用中使用以从服务器端触发事件的SDK。

安装

将 require 语句 spokela/pushy-sdk-php 添加到您的 composer.json 文件中开始使用。

使用

只需实例化 Pushy\Pushy 对象,即可享受您的实时Web应用!

use Pushy\Pushy;

$pushy = new Pushy("https://#:8234", $secretKey = "secretKey", $timeout = 3);

触发事件

触发事件非常简单

try {
    $pushy->trigger("<channel-name>", "<event-name>", array(/* data*/));
} catch(\Pushy\Exception $exception) {
    // handle eventual exception (or not)
}

如果发生错误,此方法总是抛出 \Pushy\Exception 异常,并且如果您分发事件的通道不存在(即零订阅者),则返回 false

身份验证

此类也可以用作身份验证机制。当客户端尝试订阅私有频道时,它应请求您的应用程序,该应用程序应返回此用户的身份验证令牌。

$authData = $pushy->authorize($channelName, $connectionId, $allowed = true);

以下是一个简单的 auth 处理器示例 auth.php,它与 官方客户端 配合使用

$authData = $pushy->authorize($_POST['channel'], $_POST['connection_id'], true);

header('Content-type: application/json');
echo(json_encode($authData));

存在数据

此外,您可以使用上述相同的方法为该用户指定存在数据

$presenceData = array(
    'username'  => $_SESSION['username'],
    'avatar'    => "http://gravatar.com/some/avatar/url.png"
);

$authData = $pushy->authorize($_POST['channel'], $_POST['connection_id'], true, $presenceData);

header('Content-type: application/json');
echo(json_encode($authData));

许可证

此软件根据 MIT 许可证授权。有关更多详细信息,请参阅 LICENSE 文件。

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.