PHPackages                             tangwei/http - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. tangwei/http

ActiveLibrary[HTTP &amp; Networking](/categories/http)

tangwei/http
============

http2 client, hyperf json rpc http2

02PHPCI failing

Since Jan 16Pushed 4mo agoCompare

[ Source](https://github.com/tw2066/http)[ Packagist](https://packagist.org/packages/tangwei/http)[ RSS](/packages/tangwei-http/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

HTTP/2 客户端 &amp; 基于 HTTP/2 的 Hyperf RPC 组件
==========================================

[](#http2-客户端--基于-http2-的-hyperf-rpc-组件)

📦 安装
----

[](#-安装)

```
composer require tangwei/http
```

🔧 HTTP/2 客户端
------------

[](#-http2-客户端)

### 示例

[](#示例)

```
$domain = 'httpbin.org';
// 这个client是协程安全的，可以复用
$client = new \Tangwei\Http\Http2Client($domain, 443, true);
$client->set([
    'timeout' => -1,
    'ssl_host_name' => $domain,
]);
$client->connect();
for ($i = 1; $i < 30; ++$i) {
    go(function () use ($client, $i) {
        $req = new Request();
        $req->method = 'POST';
        $req->path = '/post';
        $req->headers = [
            'host' => '127.0.0.1',
            'user-agent' => 'Chrome/49.0.2587.3',
            'accept' => 'text/html,application/xhtml+xml,application/xml',
            'accept-encoding' => 'gzip',
        ];
        $req->data = (string) $i;
        $data = $client->request($req);
        $result = json_decode($data->data, true);
    });
}
```

🚀 基于 HTTP/2 的 Hyperf RPC 组件
---------------------------

[](#-基于-http2-的-hyperf-rpc-组件)

> **注意**: 在使用此组件前，请先配置好 JSON-RPC，详情请参阅 [Hyperf JSON-RPC 文档](https://hyperf.wiki/3.1/#/zh-cn/json-rpc)

使用 `jsonrpc-http` 协议

### 服务端配置

[](#服务端配置)

修改 `config/autoload/dependencies.php` 配置文件，替换默认的传输器实现：

```
return [
    // ...
    \Hyperf\JsonRpc\JsonRpcHttpTransporter::class => \Tangwei\Http\JsonRpcHttp2Transporter::class,
];
```

### 客户端配置

[](#客户端配置)

修改 `config/autoload/services.php` 配置文件，配置客户端参数：

```
