模式 A 独占扫码 → 服务端中继 → 任意数量的模式 B 客户端即时重新生成二维码。
零第三方依赖,全部本地运行,数据不出内网。
调用后置摄像头高速识别二维码,支持闪光灯、光学/数字变焦、点按对焦、多帧校验与断网重试。
适用:手持设备对准二维码的一方。
通过 SSE 长连接实时接收扫码结果,本地重新生成二维码,支持全屏、纠错等级、PNG 导出。
适用:需要把二维码展示给其他人/另一台设备的屏幕。
按可调速度(固定/随机/自动变速巡航 + 抖动)滚动展示随机二维码,内容模板与长度可配,并自动比对"发出的码 vs 被扫回的码",实时算出命中率、漏检、端到端时延分位数。
适用:验证识别率与时延、压测系统、演示。
| 模式 A 占用情况 | — |
| B 端在线数 | |
| 历史累计上报 | 0 条 |
| 累计下发人次 | 0 次(每条 × 在线 B 端数) |
| 历史占用次数 | 0 次 |
用手机扫这个二维码直接打开(默认进显示端;扫码请自行进 A 模式):
⚠ 当前是 HTTP 访问:手机浏览器只允许在 https 或 localhost 下调用摄像头。
请在项目目录执行 npm run cert 生成自签证书后重启服务,即可用 https 访问(首次需在手机上信任证书)。
| 上行 | 模式 A POST /api/scan |
| 下行 | 模式 B SSE /api/stream?role=b |
| 独占机制 | 租约 + 心跳,超时自动释放;支持强制接管 |
| 离线容忍 | A 端上报失败自动重试,队列持久化在本地 |
| 测试注入 | 模式 3 可直连 POST /api/inject(默认关闭,需 ALLOW_INJECT=1) |
QR Relay · 本地自建 · 识别使用原生 BarcodeDetector / jsQR,生成使用 qrcode-generator