botika / socket
用于与Botika Socket REST API交互的库
v1.0.8
2022-09-12 06:52 UTC
Requires
- php: ^7.0 || ^8.0
- guzzlehttp/guzzle: ^6.0|^7.0
- psr/log: ^1.0|^2.0|^3.0
Suggests
- guzzlehttp/guzzle: Allows for implementation of the Guzzle HTTP client
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\LoggerInterface。 Socket对象实现了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);
异步接口
这两个trigger在triggerAsync中都有异步对应版本。这些函数返回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();