centrifugal/phpcent
最新稳定版本:6.0.1
Composer 安装命令:
composer require centrifugal/phpcent
包简介
PHP library to communicate with Centrifugo HTTP API
README 文档
README
PHP library to communicate with Centrifugo v5 HTTP API (for Centrifugo v4 use phpcent v5.x, for Centrifugo v3 use phpcent v4.x).
Library is published on the Composer: https://packagist.org/packages/centrifugal/phpcent
composer require centrifugal/phpcent:~6.0
See Centrifugo server API documentation.
Basic Usage:
$client = new \phpcent\Client("http://localhost:8000/api"); $client->setApiKey("Centrifugo API key"); $client->publish("channel", ["message" => "Hello World"]);
You can use phpcent to create connection token (JWT):
$token = $client->setSecret("Centrifugo secret key")->generateConnectionToken($userId);
Connection token that will be valid for 5 minutes:
$token = $client->setSecret("Centrifugo secret key")->generateConnectionToken($userId, time() + 5*60);
It's also possible to generate channel subscription token:
$token = $client->setSecret("Centrifugo secret key")->generateSubscriptionToken($userId, $channel);
It's also possible to generate channel subscription token with expiration time, for example token for 30 mins:
$token = $client->setSecret("Centrifugo secret key")->generateSubscriptionToken($userId, $channel, time() + 30*60);
Also API key and secret can be set in constructor:
$client = new \phpcent\Client("http://localhost:8000/api", "<API key>", "<secret key>");
Timeouts:
$client->setConnectTimeoutOption(0); // Seconds | 0 = never $client->setTimeoutOption(2); // Seconds
All available API methods:
$response = $client->publish($channel, $data); $response = $client->broadcast($channels, $data); $response = $client->unsubscribe($channel, $userId); $response = $client->disconnect($userId); $response = $client->presence($channel); $response = $client->presenceStats($channel); $response = $client->history($channel); $response = $client->historyRemove($channel); $response = $client->channels(); $response = $client->info();
To use assoc option while decoding JSON in response:
$client->setUseAssoc(true);
SSL
In case if your Centrifugo server has invalid SSL certificate, you can use:
$client->setSafety(false);
You can also use self signed certificate in safe manner:
$client = new \phpcent\Client("https://localhost:8000/api"); $client->setCert("/path/to/certificate.pem"); $client->setCAPath("/ca/path"); // if you need.
Note: Certificate must match with host name in Client address (localhost in example above).
DNS Resolution
This error may indicate your system is having trouble resolving IPv6 addresses:
cURL error: Resolving timed out after [value] milliseconds
By default, both IPv4 and IPv6 addresses will attempt to be resolved. You can force it to only resolve IPv4 addresses with:
$client->forceIpResolveV4();
Testing
Requirements:
The provided PHPUnit tests assume that a local Centrifugo server is running and available at port 8000. This can be accomplished using Docker and the official Centrifugo image.
# Install package dependencies. $ composer install # The following command starts a Centrifugo server running in a background Docker container. $ docker run -d -p 8000:8000 --name centrifugo centrifugo/centrifugo centrifugo --api_insecure # Run the test suite. $ vendor/bin/phpunit # Shut down the Centrifugo container. $ docker stop centrifugo
Authors
统计信息
- 总下载量: 2.25M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 183
- 点击次数: 1
- 依赖项目数: 8
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-05-14