modify: mqtt心跳转发

This commit is contained in:
2026-08-03 15:06:29 +08:00
parent 84addb71ff
commit e43c25f5dc
6 changed files with 296 additions and 4 deletions
+5 -1
View File
@@ -27,7 +27,7 @@ async def board_ping(request: BoardPingRequest, worker_id: str = "") -> dict:
设备通过 MQTT 主题 /board_ping 定期(默认 5 秒)上报系统状态。
收到心跳后更新数据库中的设备记录,标记为在线。
"""
from ..global_var import db, heartbeat_timeout, stream_manager, link_path
from ..global_var import db, heartbeat_timeout, stream_manager, link_path, mqtt_forward
board_id = request.BoardId
@@ -93,6 +93,10 @@ async def board_ping(request: BoardPingRequest, worker_id: str = "") -> dict:
source_url = media["MediaUrl"].replace("/Link", link_path)
await stream_manager.start_stream(f"/{stream_id}", source_url)
# 转发心跳数据到外部 MQTT Broker
if mqtt_forward is not None:
await mqtt_forward.publish(ping_data)
logger.debug(
f"[Heartbeat] {board_id}: temp={request.BoardTemp}, "
f"disk={request.HostDisk.Used}/{request.HostDisk.Total} kB, "