PHPackages                             waywake/json-rpc - 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. [API Development](/categories/api)
4. /
5. waywake/json-rpc

ActiveLibrary[API Development](/categories/api)

waywake/json-rpc
================

json rpc server/client.

v2.2.0(1mo ago)02202MITPHPPHP ^8.4

Since Jan 7Pushed 1mo agoCompare

[ Source](https://github.com/waywake/json-rpc-php)[ Packagist](https://packagist.org/packages/waywake/json-rpc)[ RSS](/packages/waywake-json-rpc/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (15)Versions (47)Used By (2)

waywake/json-rpc
================

[](#waywakejson-rpc)

一个面向 Laravel 12 / 13 的 JSON-RPC 2.0 服务端和客户端组件。它基于 HTTP 传输、Guzzle 发起调用、Laravel 路由和服务容器注册服务，并提供调试工具页、结构化 RPC 日志和可选监控写入。

环境要求
----

[](#环境要求)

- PHP `^8.4`
- Laravel / Illuminate `^12.0` 或 `^13.0`
- Guzzle `^7.8` 或 `^8.0`
- Monolog `^3.5`

安装
--

[](#安装)

```
composer require waywake/json-rpc
```

如果项目尚未发布到默认 Composer 源，先添加 VCS 仓库：

```
composer config repositories.waywake-json-rpc vcs
composer require waywake/json-rpc
```

发布配置文件：

```
php artisan vendor:publish --tag=rpc-config
```

注册服务
----

[](#注册服务)

在 Laravel 12 / 13 的 `config/app.php` 中注册服务提供者：

```
'providers' => [
    JsonRpc\Providers\LaravelServerServiceProvider::class,
    JsonRpc\Providers\ClientServiceProvider::class,
],
```

注册后会自动挂载以下路由：

- `POST /rpc/json-rpc-v2.json`
- `GET /rpc/json-rpc-v2.json`
- `GET|POST /rpc/tool.html`，仅在 `config('app.debug')` 为 `true` 时可用

RPC 路由默认使用 `rpc.security` 中间件，只允许本地、内网和部分固定网段访问；`develop`、`local` 环境会直接放行。

配置
--

[](#配置)

默认配置位于 `config/rpc.php`：

```
return [
    'app' => env('APP_NAME'),
    'log_path' => storage_path('logs/rpc.log'),
    'log_formatter' => JsonRpc\Logging\LogstashFormatter::class,

    'monitor' => [
        'enabled' => env('RPC_MONITOR_SWITCH', false),
    ],

    'server' => [
        'name' => env('APP_NAME'),
        'map' => base_path('app/Rpc/method.php'),
    ],

    'client' => [
        'auth' => [
            'local' => true,
            'base_uri' => env('RPC_AUTH_URI', 'http://auth.dev.haowumc.com'),
        ],
    ],
];
```

关键字段说明：

- `app`：当前应用名，会写入 `X-Client-App` 请求头和日志。
- `log_path`：RPC 日志输出路径。
- `log_formatter`：Monolog formatter，默认输出 Logstash 风格 JSON。
- `monitor.enabled`：开启后，`TunnelMiddleware` 会尝试向 InfluxDB 写入状态指标；未安装 InfluxDB 客户端时会静默跳过。
- `server.map`：服务端方法映射文件。
- `client.*.base_uri`：客户端调用的远端服务地址。

服务端
---

[](#服务端)

创建方法映射文件，例如 `app/Rpc/method.php`：

```
