RUNNING ON CLOUDFLARE WORKERS
个人基础设施,一套端点全部搞定。
运行于 Cloudflare 边缘节点的 Hono 服务:基础信息查询、SSE 实时时间流、五大交易所 API 反向代理,以及随身WiFi设备的遥测上报与状态管理。本页接口均可直接运行体验。
01
基础工具
零认证的轻量查询接口,返回 JSON。点击「运行」直接发起同源请求查看真实响应。
GET
/time
当前时间的四种表示:毫秒时间戳、ISO 8601、UTC 字符串与 Unix 秒。
GET
/ip
从 Cloudflare 请求头解析客户端网络信息:IP、国家、城市与大洲。
GET
/info
请求诊断汇总:IP、User-Agent、时区与 Cloudflare Ray ID,排查问题时优先看这里。
GET
/health
存活探针,供监控服务轮询。返回 200 与当前毫秒时间戳。
POST
/back
JSON 回显:校验 Content-Type 后原样返回请求体,用于联调 POST 链路。
$ curl -X POST -H "Content-Type: application/json" \ -d '{"hello": "world"}' https://your-worker.example.com/back
02
SSE 实时时间流
基于 Server-Sent Events 的长连接推送,服务端每秒下发一次结构化时间数据,55 秒后自动收尾,客户端断开即停止。适合验证代理、网关对流式响应的透传能力。
GET
/time/sse
每条消息格式:data: {"time": "...", "timestamp": ..., "formatted": "..."}
未连接
等待连接…
03
交易所 API 反向代理
把请求路径中的交易所前缀替换为目标域名后原样转发(方法、查询串、请求体均透传),并附加宽松 CORS 头。适用于被区域限制或需要统一入口的行情拉取场景。
| 前缀 | 转发目标 | 示例 |
|---|---|---|
| /binance/* | https://api.binance.com | /binance/api/v3/time |
| /okx/* | https://www.okx.com | /okx/api/v5/public/time |
| /bybit/* | https://api.bybit.com | /bybit/v5/market/time |
| /bitget/* | https://api.bitget.com | /bitget/api/v2/public/time |
| /gate/* | https://api.gateio.ws | /gate/api/v4/spot/time |
GET
/binance/api/v3/time
试一条真实链路:经 Worker 转发至 Binance 服务器时间接口。
04
随身WiFi 遥测上报
设备端客户端(mifi_guard)每 5 分钟推送一次全量快照,服务端按序列号 upsert 到 KV——电量、基带信号、WiFi 客户端与守护状态一站汇集。上报需 Bearer 认证,查询接口开放访问。
POST
/api/mifi/report
设备上报快照。必填 sn 与 reportTime,其余字段按可空处理;响应预留 cmd 字段供远程调参。
$ curl -X POST https://base.cardm.top/api/mifi/report \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{"sn":"MLM18235105156","reportTime":1790940000,...}' # 响应 {"code":0,"error":"","cmd":null}
GET
/api/mifi/devices
全部设备最新快照与在线判定(超过 600 秒未上报即离线)。下方面板即此接口。
GET
/api/mifi/device/:sn
单台设备的完整快照详情。在下方面板点击设备行即可展开查看。
| 字段 | 类型 | 说明 |
|---|---|---|
| sn | string | 设备序列号,唯一标识与 upsert 主键 |
| reportTime | int64 | 上报时刻 Unix 秒(设备时间) |
| uptimeSec | int64 | 设备开机时长(秒),设备重启才清零 |
| agentUptimeSec | int64 | 守护进程运行时长;与 uptimeSec 对照可识别 mifi_guard 重启 |
| battery.capacity | int | 电量 0-100;读取失败时整个对象缺席 |
| battery.tempC | float | 电池温度 °C,配合保护状态机判断 |
| modem.rsrpDbm | float | 参考信号功率 dBm,越接近 0 越好 |
| modem.sinrDb | float | 信噪比 dB,大于 13 视为良好 |
| modem.wanIp / wanIpv6 | string | 蜂窝口 IPv4 / IPv6;IPv4 空串=无数据连接 |
| modem.rxBytes / txBytes | int64 | 累计收/发字节(设备重启清零);相邻差值÷间隔=速率 |
| modem.internetOk | bool | 外网连通探测(TCP 223.5.5.5:53);断网判定以此为准 |
| modem.internetRttMs | int64 | 连通探测 RTT 毫秒,internetOk=false 时为 0 |
| system.load1 | float | 1 分钟负载;4 核设备,大于 4 即过载 |
| system.memAvailableKb | int64 | 可用内存 KB;持续小于 20MB 需关注 |
| system.firmwareVersion | string | 设备固件版本(区别于 mifi_guard 的 version) |
| wifi.clients | []string | 当前在线 WiFi 客户端 MAC 列表 |
| guard.mode | string | normal / charge_full / temp_high(电池保护状态机) |