PHPackages                             siam/easyswoole-http-monitor - 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. [Framework](/categories/framework)
4. /
5. siam/easyswoole-http-monitor

ActiveLibrary[Framework](/categories/framework)

siam/easyswoole-http-monitor
============================

easyswoole的HTTP请求监控、复发

v1.0.3(6y ago)422.9k7[1 issues](https://github.com/xuanyanwow/easyswooleHttpMonitor/issues)Apache-2.0PHP

Since Jul 31Pushed 5y ago2 watchersCompare

[ Source](https://github.com/xuanyanwow/easyswooleHttpMonitor)[ Packagist](https://packagist.org/packages/siam/easyswoole-http-monitor)[ Docs](https://www.siammm.cn)[ RSS](/packages/siam-easyswoole-http-monitor/feed)WikiDiscussions master Synced 6d ago

READMEChangelog (1)Dependencies (2)Versions (5)Used By (0)

HTTP监控复发工具
==========

[](#http监控复发工具)

在开发接口阶段，可以记录最近的http请求，并且分析参数、复发请求，

特别是在微信支付等异步回调的场景，调试非常舒爽。

作者 Siam

QQ 59419979

可在easyswoole官方1群、2群(管理员)找到我

使用场景
====

[](#使用场景)

记录监听近期的HTTP请求参数，可以手动选择复发。

在接口调试阶段，比较有用，特别是微信支付异步回调等场景。

假设我们有一个接口的参数需要从前面两个接口获得，并且在短期内可以重复使用

当我们在调试过程发现这个接口出bug，我们直接在HttpMonitor面板中点击复发，即可看到结果，进行调试，再复发，再复发，再复发。。。直到程序修复

支付成功异步回调就不说了，每一次都要你从手机付款一笔 微信才回调，然后你打Log，再调整程序。

同上，我们可以同一个订单，一直复发，调试程序，直到所有流程跑通。再线上真机测试。

截图演示
====

[](#截图演示)

[![首页](./src/Resource/index.png)](./src/Resource/index.png)

[![请求详情](./src/Resource/viewrequest.png)](./src/Resource/viewrequest.png)

[![复发请求](./src/Resource/resend.png)](./src/Resource/resend.png)

使用教程
====

[](#使用教程)

安装

```
composer require siam/easyswoole-http-monitor

```

mainServerCreate方法注册

```

use Siam\HttpMonitor\Config as HttpConfig;
use Siam\HttpMonitor\Monitor;

$config = new HttpConfig([
    'size'      => 20, //最大缓存数量
    'listUrl'   => '/siam/http-monitor/get_list',
    'resendUrl' => '/siam/http-monitor/resend',
]);

$monitor = Monitor::getInstance($config);

// 添加白名单 无需记录
$monitor->addFilter('/siam/http-monitor/get_list');
$monitor->addFilter('/favicon.ico');
$monitor->addFilter('/siam/http-monitor');
$monitor->addFilter('/siam/http-monitor/resend');

```

添加路由支持

```

use Siam\HttpMonitor\Config;
use Siam\HttpMonitor\Monitor;

// 主页面
$routeCollector->get('/siam/http-monitor', function (Request $request, Response $response) {
    $monitor = Monitor::getInstance();
    $html = $monitor->listView();
    $response->withHeader('Content-type','text/html;charset=utf-8');
    $response->write("$html");//获取到路由匹配的id
    return false;//不再往下请求,结束此次响应
});

// 获取历史列表
$routeCollector->addRoute(['POST', 'GET'], '/siam/http-monitor/get_list', function (Request $request, Response $response) {
    $response->withHeader('Content-type','text/html;charset=utf-8');
    $response->write(Monitor::getInstance()->getList());//获取到路由匹配的id
    return false;//不再往下请求,结束此次响应
});

// 复发请求
$routeCollector->addRoute(['POST'], '/siam/http-monitor/resend', function (Request $request, Response $response) {
    $content = $request->getBody()->__toString();
    $content = json_decode($content, true);
    $response->write(Monitor::getInstance()->resend($content['id']));
    return false;//不再往下请求,结束此次响应
});

```

onRequest拦截

```
Monitor::getInstance()->log([
    'header'     => $request->getHeaders(),
    'server'     => $request->getServerParams(),
    'get'        => $request->getQueryParams(),
    'post'       => $request->getParsedBody(),
    'cookie'     => $request->getCookieParams(),
    'files'      => $request->getUploadedFiles(),
    'rawContent' => $request->getBody()->__toString(),
    'data'       => $request->getSwooleRequest()->getData(),
]);

```

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity33

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~67 days

Total

4

Last Release

2279d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/217347?v=4)[Saeed Siam](/maintainers/siam)[@siam](https://github.com/siam)

---

Top Contributors

[![xuanyanwow](https://avatars.githubusercontent.com/u/28777109?v=4)](https://github.com/xuanyanwow "xuanyanwow (13 commits)")

---

Tags

frameworkswooleeasyswoolehttp monitor

### Embed Badge

![Health badge](/badges/siam-easyswoole-http-monitor/health.svg)

```
[![Health](https://phpackages.com/badges/siam-easyswoole-http-monitor/health.svg)](https://phpackages.com/packages/siam-easyswoole-http-monitor)
```

###  Alternatives

[easyswoole/easyswoole

An efficient swoole framework

4.8k186.9k50](/packages/easyswoole-easyswoole)[easyswoole/mysqli

An efficient swoole framework

34120.5k27](/packages/easyswoole-mysqli)[easyswoole/orm

php stander lib

3088.7k17](/packages/easyswoole-orm)[easyswoole/compiler

easyswoole component

691.1k](/packages/easyswoole-compiler)[easyswoole/actor

easyswoole component

1410.3k](/packages/easyswoole-actor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
