文件职责
MQTT消息服务的领域服务层,负责与MQTT Broker建立连接并处理设备消息。
实现方式
使用 mqtt.js客户端库 + EventEmitter事件总线:
- mqtt.connect建立WebSocket连接
- 订阅特定主题接收消息
- 通过EventEmitter将消息广播到应用其他部分
实现思路
- 连接管理:提供startListening和stopListening控制连接生命周期
- 消息路由:根据topic和status字段分发消息到不同处理逻辑
- 事件解耦:通过EventEmitter实现发布订阅模式,解耦消息接收和处理
- 状态映射:将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:缩略图