# MQTT Topic 定义

## 上行（Watchdog → Exchange-Hub）

| Topic | 消息类型 | 说明 |
|-------|----------|------|
| `wdd/RDMC/command/up` | register | 项目注册 |
| `wdd/RDMC/command/up` | auth_request | 授权申请 |
| `wdd/RDMC/message/up` | register_complete | 注册完成确认 |
| `wdd/RDMC/message/up` | heartbeat | 心跳数据 |
| `wdd/RDMC/message/up` | monitor | 监控数据上报 |
| `wdd/RDMC/message/up` | exec_result | 指令执行结果 |
| `wdd/RDMC/message/up` | log_result | 日志查询结果 |
| `wdd/RDMC/message/up` | alert | 告警信息 |

## 下行（Exchange-Hub → Watchdog）

| Topic | 消息类型 | 说明 |
|-------|----------|------|
| `wdd/RDMC/command/down/{project_id}` | auth_response | 授权响应 |
| `wdd/RDMC/command/down/{project_id}` | auth_revoke | 授权撤销 |
| `wdd/RDMC/command/down/{project_id}` | log_query | 日志查询指令 |
| `wdd/RDMC/command/down/{project_id}` | host_exec | 主机执行指令 |
| `wdd/RDMC/command/down/{project_id}` | k8s_exec | K8S执行指令 |
| `wdd/RDMC/command/down/{project_id}` | update | 业务更新指令 |
| `wdd/RDMC/message/down/{project_id}` | register_ack | 注册确认消息 |

## Topic命名规范

- 前缀：`wdd/RDMC/`
- 类型：`command`（指令）或 `message`（消息）
- 方向：`up`（上行）或 `down`（下行）
- 项目ID：下行Topic需包含 `{project_id}` 用于路由

## 消息结构

```go
type BaseMessage struct {
    MessageID string `json:"message_id"`
    Type      string `json:"type"`      // command | message
    ProjectID string `json:"project_id"`
    Timestamp int64  `json:"timestamp"`
}

type DataMessage struct {
    BaseMessage
    DataType string      `json:"data_type"` // 具体消息类型
    Payload  interface{} `json:"payload"`
}
```
