mqttService.ts.md 1.5 KB

文件职责

MQTT消息服务的领域服务层,负责与MQTT Broker建立连接并处理设备消息。

实现方式

使用 mqtt.js客户端库 + EventEmitter事件总线

  • mqtt.connect建立WebSocket连接
  • 订阅特定主题接收消息
  • 通过EventEmitter将消息广播到应用其他部分

实现思路

  1. 连接管理:提供startListening和stopListening控制连接生命周期
  2. 消息路由:根据topic和status字段分发消息到不同处理逻辑
  3. 事件解耦:通过EventEmitter实现发布订阅模式,解耦消息接收和处理
  4. 状态映射:将MQTT消息状态映射为应用内事件(TASK_SUCCESS、ACQUISITION_SUCCESS等)

边界

输入边界

  • MQTT_BROKER_URL: MQTT代理服务器地址
  • MQTT消息:从设备发送的JSON格式消息

输出边界

  • 事件发射:TASK_SUCCESS、ACQUISITION_SUCCESS、ACQUISITION_FAILURE、AllReady_TRUE、AllReady_FALSE
  • 控制接口:startListening、stopListening

职责边界

  • ✅ 负责:MQTT连接管理、消息订阅、事件发射
  • ❌ 不负责:消息的业务处理、UI更新、状态管理

涉及概念

  • MQTT:轻量级消息传输协议
  • MQTT Broker:消息代理服务器
  • WebSocket:基于TCP的全双工通信协议
  • Topic:MQTT主题(消息分类)
  • Subscribe:订阅主题
  • Publish/Subscribe Pattern:发布订阅模式
  • EventEmitter:事件发射器
  • DCM (DICOM):医学图像格式
  • SOP:DICOM标准操作协议
  • Thumbnail:缩略图