deepstreamcentral / deepstream.io-client-curl-php
deepstreamCentral的PHP客户端
dev-master
2020-03-03 09:39 UTC
Requires
- php: >=5.3.0|^7.0
This package is not auto-updated.
Last update: 2024-09-26 05:31:49 UTC
README
使用dsh HTTP API的PHP客户端
安装与运行测试
运行测试稍微复杂一些,因为它需要一个由两个节点组成的deepstream集群,包括一个Websocket deepstream,该节点提供测试服务并处理RPC调用和事件监听,以及一个HTTP deepstream,实际的测试将在其上运行
- 安装PHP - 您可以从例如http://windows.php.net/download/(针对Windows)获取
- 将包含可执行文件的文件夹(例如php.exe,php-cli.exe)添加到您的路径中
- 从https://phpunit.de/下载PHP Unit
- 将
phpunit-6.2.1.phar
文件移动到您的deepstream.io-client-php
文件夹 - 通过以下命令使其可执行
chmod +x phpunit.phar
- 下载本地版本的Redis并在默认端口上运行它
- 下载最新的deepstream版本并将其解压
- 在其lib目录中运行
git clone git@github.com:deepstreamIO/dsx-connection-http.git
- 通过
yarn install
安装插件 - 将
ds-conf
中的配置文件复制到您的deepstream的conf目录 - 使用
./deepstream.exe install msg redis
安装redis msg连接器 - 使用以下命令启动两个deepstream实例
./deepstream.exe start -c conf/config-http.yml
和
./deepstream.exe start -c conf/config-ws.yml
- 在
deepstream.io-client-php
中安装测试提供者
cd test-provider
yarn install
- 运行测试提供者
node test-provider.js
- 使用以下命令运行测试
php phpunit-6.2.1.phar --bootstrap src\DeepstreamClient.php test\client-test.php
API
new DeepstreamClient( $url, $authData )
创建deepstream客户端
$client = new DeepstreamClient( 'https://api.deepstreamcentral.com/api/v1', array( 'token' => 'xxxx-xxxx-xxxx-xxxx' ) );
setRecord( $recordName, [$path], $data )
将完整或部分数据写入记录
# Writing full data $client->setRecord('user/johndoe', array( 'firstname' => 'John', 'lastname' => 'Doe', 'age' => 32, 'pets' => array('hamster', 'cat') )); # Writing partial data $client->setRecord('user/johndoe', 'age', '33');
$client->getRecord( $recordName )
读取给定记录的数据
$firstname = $client->getRecord('user/johndoe')->firstname;
$client->deleteRecord( $recordName )
删除记录
$client->deleteRecord('user/johndoe');
$client->getRecordVersion( $recordName )
检索记录的当前版本
$version = $client->getRecordVersion('user/johndoe');
$client->makeRpc( $rpcName, [$data] )
执行远程过程调用
#with data $twentyfour = $client->makeRpc('multiply-by-two', 12); #without data $client->makeRpc('logout');
$client->emitEvent( $eventName, [$data] )
触发事件
#with data $client->emitEvent('new-message', 'hey, what\'s up?'); #without data $client->emitEvent('ping');
$client->startBatch()
开始一组将作为单个请求执行的批处理操作
$client->executeBatch()
执行现有的批处理操作集
$client->startBatch() $client->emitEvent( 'new-message', 'hey, what\'s up?' ); $client->getRecord( 'user/johndoe' ); $client->setRecord( 'user/mike', 'age', 12 ); $client->executeBatch();