MiguDelay 架构 22:机审会话
MiguDelay(DDLive)项目架构系列文档:机审会话。内容基于 2026-08-04 对指定重构分支的源码扫描结果整理。
MiguDelay 架构 22:机审会话
系列导航:系列总览 · 上一篇:MiguDelay 架构 21:主备绑定、心跳与业务复制 · 下一篇:MiguDelay 架构 23:屏蔽截图报告
扫描基线
- 项目:
MiguDelay(DDLive)- 分支:
refactor/video-frame-provider- HEAD:
d28ec061406e4e3df93e3d1a92478d71a9ad4908- 工作树:clean
- 扫描日期:2026-08-04
- 说明:内容以当前 HEAD 源码为准;仓库旧架构文档仅作为线索,不作为最终事实来源。
1. 边界
机审在主输入真正 ready 后启动,任务停止时 best-effort 结束。机审失败产生 typed Audit error,但不进入 TaskSession 的 recv/record/push stop barrier。
2. 核心类
| 类 | 职责 |
|---|---|
MachineAuditService |
phase、task/audit generation、dataId/bizId |
LegacyMachineAuditGateway |
HTTP start/stop、MQTT report、callback gate |
LegacyMachineAuditBinding |
task event、配置快照、日志/warning |
ClientOperateHandle |
machine result JSON |
ApplicationIngress |
typed result 到控制线程 |
3. 启动条件
TaskOrchestrator 必须完成:
- 主
StartReceivesuccess。 ReceiveReadySnapshot存在。prepareRecordingsuccess。- emit
mainInputReady(identity,generation,liveUrl)。
之后 Binding 才构造 immutable audit start event。
4. 调用链
sequenceDiagram
participant O as TaskOrchestrator
participant B as MachineAuditBinding
participant S as MachineAuditService
participant G as MachineAuditGateway
participant API as AuditAPI
O-->>B: mainInputReady
B->>B: capture config client and start time
B->>S: handleTaskStarted
S->>S: increment audit generation
S->>G: start request
G->>API: HTTP start
API-->>G: dataId and bizId
G-->>S: completion
S->>S: verify task and audit generation
S->>G: reportStarted when active
5. immutable request
TaskIdentityTaskGeneration- live URL
- live start time
- complete
MachineAuditConfig - client/role/reply topic
enabled 时要求 baseUrl、appId、platformCode、callbackUrl、coverUrl 和正 sceneId。
6. compensation stop
若任务在 audit Starting 期间停止:
- Service 记录 stop intent。
- start 失败则直接清理。
- start 最终成功则立即对新 dataId 提交 stop。
- 旧会话不会重新暴露为 Active。
7. 结果消息
1
2
3
4
5
6
ClientOperateHandle.handleMachineAuditResult
-> parser
-> MachineAuditResultEvent
-> ApplicationIngress
-> MachineAuditService.handleResult
-> LegacyMachineAuditBinding warning and logs
只有 Active 且 dataId/bizId 匹配当前会话的结果才接受。
8. 停止与 shutdown
taskStopping 转为 Service stop request。重复、stale、post-stop 不重复提交。shutdown 时:
- Binding disconnect。
- cancel pending report。
- Active 会话最多 best-effort stop 一次。
- audit generation 递增。
- Gateway callback gate 关闭。
9. 源码证据
src/code/module/playback/machineaudit/*src/code/module/netmessagehandle/clientoperate/*tests/machine_audit_service/*
系列导航:系列总览 · 上一篇:MiguDelay 架构 21:主备绑定、心跳与业务复制 · 下一篇:MiguDelay 架构 23:屏蔽截图报告
本文由作者按照
CC BY 4.0
进行授权