botika/socket

用于与Botika Socket REST API交互的库

v1.0.8 2022-09-12 06:52 UTC

This package is auto-updated.

Last update: 2024-09-12 11:15:41 UTC


README

PHP库,用于与Botika Socket HTTP API交互。

安装

您可以通过名为 socket 的Composer包来获取Botika Socket PHP库。请参阅 https://packagist.org.cn/packages/botika/socket

composer require botika/socket

或者添加到 composer.json

"require": {
    "botika/socket": "^1.0"
}

然后运行 composer update

支持的平台

  • PHP - 支持7.0及以上版本的PHP。

Botika Socket构造函数

使用您的Botika Socket应用程序的凭据来创建一个新的Botika\Socket实例。

$baseURL = 'https://socket.example.com';
$username = 'USERNAME';
$password = 'PASSWORD';
$auth = new \Botika\Socket\Auth($username, $password);

// Initialize socket
$socket = new \Botika\Socket\Socket($baseURL, $auth);

日志配置

推荐的日志方法是使用符合PSR-3的日志记录器实现Psr\Log\LoggerInterfaceSocket对象实现了Psr\Log\LoggerAwareInterface,这意味着您需要调用setLogger(LoggerInterface $logger)来设置日志记录器实例。

// where $logger implements `LoggerInterface`

$socket->setLogger($logger);

发布/触发事件

要在一个或多个通道上触发事件,请使用trigger函数。

单个通道

// Options get from https://docs.guzzlephp.org/en/stable/request-options.html
$options = [];
$socket->trigger('my-channel', 'my_event', 'hello world', $options);

多个通道

// Options get from https://docs.guzzlephp.org/en/stable/request-options.html
$options = [];
$socket->trigger([ 'channel-1', 'channel-2' ], 'my_event', 'hello world', $options);

异步接口

这两个triggertriggerAsync中都有异步对应版本。这些函数返回Guzzle promises,可以使用->then进行链式调用。

// Options get from https://docs.guzzlephp.org/en/stable/request-options.html
$options = [];
$promise = $socket->triggerAsync(['channel-1', 'channel-2'], 'my_event', 'hello world', $options);
$promise->then(
    function (ResponseInterface $res) {
        echo $res->getStatusCode() . "\n";
    },
    function (RequestException $e) {
        echo $e->getMessage() . "\n";
        echo $e->getRequest()->getMethod();
    }
);
$promise->wait();