floriangaerber/ably-php8

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

PHP ^8.0 的 ably/ably-php 的潜在不稳定的分支

v1.1.4 2021-01-29 15:13 UTC

README

Latest Stable Version Total Downloads License

这是一个用于 www.ably.io 的 PHP REST 客户端库,该库是实时消息服务。此库目前针对的是 Ably 1.1 客户端库规范。您可以跳转到 '已知限制' 部分,查看此客户端库尚未支持的功能,或查看我们的客户端库 SDK 特性支持矩阵,以查看所有可用功能的列表。

支持的平台

此 SDK 支持 PHP 5.6 和 7.0+

我们对一系列 PHP 版本(这些版本将随着时间的推移而变化,但通常包括上游支持的版本)进行回归测试。请参阅 .travis.yml 了解目前进行 CI 测试的版本集。

我们乐于支持(并调查报告的任何兼容性问题)任何合理广泛使用的 PHP 版本。如果您发现任何兼容性问题,请在此存储库中 提出问题 或联系 Ably 客户支持 以获取建议。

已知限制

目前,此 SDK 只支持 Ably REST。但是,您可以使用 MQTT 适配器 使用 Python 实现 Ably 的实时功能

此 SDK 与一些 Ably 功能 不兼容

功能
在失败期间记住回退主机
MsgPack 二进制协议

文档

访问 https://www.ably.io/documentation 获取完整的 API 参考 和更多示例。

安装

通过 composer

客户端库作为 packagist 上的 composer 包 提供。如果您尚未安装 composer,您可以从 https://getcomposer.org.cn/ 获取它。

使用以下命令从 shell 安装 Ably:

$ composer require ably/ably-php --update-no-dev

然后简单地需要 composer 的自动加载器

require_once __DIR__ . '/vendor/autoload.php';

手动安装

从本存储库克隆或下载 Ably 并需要 ably-loader.php

require_once __DIR__ . '/ably-php/ably-loader.php';

使用 REST API

介绍

所有示例都假设已经按照以下方式创建了一个客户端和/或通道:

$client = new Ably\AblyRest('your.appkey:xxxxxx');
$channel = $client->channel('test');

向通道发布消息

$channel->publish('myEvent', 'Hello!'); // => true

查询历史记录

$messagesPage = $channel->history(); // => \Ably\Models\PaginatedResult
$messagesPage->items[0]; // => \Ably\Models\Message
$messagesPage->items[0]->data; // payload for the message
$messagesPage->next(); // retrieves the next page => \Ably\Models\PaginatedResult
$messagesPage->hasNext(); // false, there are no more pages

通道上的存在状态

$membersPage = $channel->presence->get(); // => \Ably\Models\PaginatedResult
$membersPage->items[0]; // first member present in this page => \Ably\Models\PresenceMessage
$membersPage->items[0]->clientId; // client ID of first member present
$membersPage->next(); // retrieves the next page => \Ably\Models\PaginatedResult
$membersPage->hasNext(); // false, there are no more pages

查询存在历史记录

$presencePage = $channel->presence->history(); // => \Ably\Models\PaginatedResult
$presencePage->items[0]; // => \Ably\Models\PresenceMessage
$presencePage->items[0]->clientId; // client ID of first member
$presencePage->next(); // retrieves the next page => \Ably\Models\PaginatedResult

生成令牌和令牌请求

$tokenDetails = $client->auth->requestToken();
// => \Ably\Models\PresenceMessage
$tokenDetails->token; // => "xVLyHw.CLchevH3hF....MDh9ZC_Q"

$client = new Ably\AblyRest( $tokenDetails->token );
// or
$client = new Ably\AblyRest( array( 'tokenDetails' => $tokenDetails ) );

$token = $client->auth->createTokenRequest();
// => {"id" => ...,
//     "clientId" => null,
//     "ttl" => 3600,
//     "timestamp" => ...,
//     "capability" => "{\"*\":[\"*\"]}",
//     "nonce" => ...,
//     "mac" => ...}

获取应用的统计信息

$statsPage = client->stats(); // => \Ably\Models\PaginatedResult
$statsPage->items[0]; // => \Ably\Models\Stats
$statsPage->next(); // retrieves the next page => \Ably\Models\PaginatedResult

获取Ably服务时间

$client->time(); // in milliseconds => 1430313364993

Laravel

如果你正在使用Laravel,你可能想查看ably-php-laravel包装器,这是一个具有Laravel特定辅助类的包装器。

支持、反馈和故障排除

请访问http://support.ably.io/以访问我们的知识库并寻求任何帮助。

您还可以查看社区报告的Github问题

要查看Bundler最近版本的更改,请参阅CHANGELOG

已知限制

  1. 此客户端库需要PHP版本5.4或更高版本
  2. 目前PHP客户端库中缺少对msgpack的支持,因为没有可用的稳定PHP msgpack库。

运行测试

客户端库使用Ably沙盒环境来部署应用程序并在该应用程序上运行测试。为了运行测试,您需要:

git clone https://github.com/ably/ably-php.git
cd ably-php
composer install
git submodule init
git submodule update
./vendor/bin/phpunit

贡献

  1. 将其Fork
  2. 创建您的功能分支(git checkout -b my-new-feature
  3. 提交您的更改(git commit -am 'Add some feature'
  4. 确保您已添加合适的测试,并且测试套件正在通过(运行vendor/bin/phpunit
  5. 将分支推送到远程(git push origin my-new-feature
  6. 创建一个新的Pull Request

发布流程

此库使用语义版本。对于每个版本,需要执行以下操作: