muvon / kiss-json-rpc

KISS实现的JSON RPC客户端

0.5.1 2021-03-28 11:19 UTC

This package is auto-updated.

Last update: 2024-09-18 11:17:07 UTC


README

实现lib以与JSON RPC协议协同工作的KISS版本

使用示例

以下是使用库的快速代码片段

use Muvon\KISS\JsonRpc;
$rpc = JsonRpc::creete(
  'http://rpc-server.ip.or.host',
  'username',
  'password'
);

// Call one method
[$err, $result] = $rpc->call('method', [1, 2, 3]);

// Call several methods asycn
$multi = [
  ['method1', ['param1', 'param2']],
  ['method2', ['param1', 'param2']],
];
[$err, $results] = $rpc->callMulti($multi);

// Call method using magic
[$err, $result] = $rpc->method_name(['param1', 'param2']);

方法

create(string $url, ?string $username = null, ?string $password = null)

此方法使用给定参数创建对象实例。如果RPC需要身份验证,您需要传递用户名和密码。否则可以省略。

库发出的所有请求都是POST,JSON,并且Connection: close。

use Muvon\KISS\JsonRpc;

$rpc = JsonRpc::create($url);

call(string $method, array $params = [])

此方法对给定的方法和参数进行简单的RPC调用。

它返回一个常见的结构数组:[error, result]。其中error是错误字符串表示或null,result是结果数组或null,甚至在我们有错误并且想要向result变量提供更多信息时,我们可以混合使用它。

[$err, $result] = $rpc->call('getblockcount');

callMulti(array $multi)

此方法与call方法类似,但接收命令列表作为参数,并返回相同的结构,但result包含结果列表。如果其中一个或多个请求失败,我们将抛出Error并在该方法中捕获自身以返回错误消息。

[$err, $results] = $rpc->callMulti(
  ['getblockhash', [1]],
  ['getblockhash', [2]],
);

// var_dump($results)
// [ array of response1, array of response2 ]

魔术方法

您可以通过使用魔术和相同的rpc名称方法来调用任何rpc方法。它将路由您到call方法。

$rpc->getblockhash(1);

setOption(string $opt, mixed $value)

此方法允许您在使用库之前更改可用选项。

可用选项包括

  • OPT_CONNECT_TIMEOUT - int 连接到主机的时间
  • OPT_TIMEOUT - int 在连接中等待响应的时间
  • OPT_SSL_VERIFY - int 默认跳过验证为0或1检查SSL证书

测试覆盖率

  • 使用call的简单单一请求
  • 简单的多请求
  • 发送正确的参数