nocksapp/tivoka

通用的JSON-RPC客户端/服务器库。正确实现的JSON-RPC!

3.5.2 2016-10-20 15:30 UTC

This package is auto-updated.

Last update: 2024-09-20 21:47:38 UTC


README

PHP 5.3+ 的 JSON-RPC 客户端和服务器

  • 轻松在 v1.0v2.0 规范之间切换
  • 支持 HTTP、TCP 和 WebSocket 传输

示例

这些只是快速示例。请查看 /doc/ 中的文档。

通过 HTTP 发送请求...

<?php
$connection = Tivoka\Client::connect('http://example.com/api')
$request = $connection->sendRequest('substract', array(51, 9));
print $request->result;// 42
?>

...或者纯TCP

<?php
$connection = Tivoka\Client::connect(array('host' => 'example.com', 'port' => 1234))
$request = $connection->sendRequest('substract', array(51, 9));
print $request->result;// 42
?>

...或者 WebSocket

<?php
$connection = Tivoka\Client::connect('ws://example.com/api')
$request = $connection->sendRequest('substract', array(51, 9));
print $request->result;// 42
?>

创建服务器

<?php
$methods = array(
    'substract' => function($params) {
        list($num1, $num2) = $params
        return $num1 - $num2;
    }
);
Tivoka\Server::provide($methods)->dispatch();
?>

链接

  • 查看 doc/ 中的文档
  • 将任何错误、建议或问题提交到 问题跟踪器

安装

安装 composer 包

  1. 在项目目录中设置 composer.json
{
  "require":{"tivoka/tivoka":"*"}
}
  1. 运行 composer
$ php composer.phar install

现在,包含 include 'vendor/autoload.php'

许可

版权所有 2011-2012 由 Marcel Klehr MIT 许可。

变更日志

3.5.1

  • 修复 Http 连接

3.5.0

  • 如果安装了 curl,则支持 cookie(感谢 @oxan)

3.4.2

  • 修复通过 curl 的 HTTP:不要为 http 头添加换行符(感谢 @oskarcafe)

3.4.1

  • Http:如果可用,则使用 cURL(感谢 @hschletz)

3.4.0

  • 添加在 WebSocket 中设置/覆盖请求头部的选项(感谢 @fiddur)

3.3.0

  • 添加 WebSocket 传输(感谢 @fiddur)

3.2.1

  • 修复 #41:修复 Tivoka\Server\Server::process 中的异常捕获(感谢 @ikulis)

3.2.0

  • 功能:纯 TCP 连接(在此过程中大幅重写了我们的内部结构!感谢 @rafalwrzeszcz)
  • 功能:可配置的连接超时

3.1.0

  • 修复 #27:json-rpc 响应 [result] 可能为 null(感谢 @vaab)
  • 功能:允许设置请求头并公开响应头(感谢 @vaab)
  • 修复客户端通知的 bug
  • doc/ 中添加文档

3.0.1

  • 修复一个在抛出异常时会导致问题的错别字(感谢 @gahr)

3.0.0

  • 使用命名空间(不再支持 php5.2)
  • 新的工厂类(每个服务器/客户端)
  • 请求不再需要 $id 参数
  • 大幅简化了服务器端的使用
  • 流畅的规范版本设置器
  • 现在可作为 composer 包提供

2.0.3

  • 添加了 HTTPS 支持
  • 目标方案现在不区分大小写处理

2.0.2

  • 引入了新的目录结构
  • 修复 #10
  • 一些异常消息略有变化,以更具体

2.0.1

  • 修复 http 方法拼写(变为大写,以便所有服务器都接受它)

2.0.0

  • 完整代码库重构
  • 主要 API 变更
  • 移除 Response 类
  • 添加了若干快捷方式
  • 实现了本机远程接口