"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MqttBrokerController = void 0; const mqttBrokerService_1 = require("../services/mqttBrokerService"); class MqttBrokerController { static async getStatus(req, res) { try { const broker = mqttBrokerService_1.MqttBrokerService.getInstance(); const clients = broker.getConnectedClients(); res.json({ success: true, data: { running: true, connectedClients: clients.length, port: parseInt(process.env.MQTT_BROKER_PORT || '1883', 10), allowAnonymous: process.env.MQTT_ALLOW_ANONYMOUS === 'true' } }); } catch (error) { res.status(500).json({ success: false, message: error.message || '获取Broker状态失败' }); } } static async getConnectedClients(req, res) { try { const broker = mqttBrokerService_1.MqttBrokerService.getInstance(); const clients = broker.getConnectedClients(); res.json({ success: true, data: clients }); } catch (error) { res.status(500).json({ success: false, message: error.message || '获取连接客户端失败' }); } } static async disconnectClient(req, res) { try { const clientId = req.params.clientId; const broker = mqttBrokerService_1.MqttBrokerService.getInstance(); const result = broker.disconnectClient(clientId); if (result) { res.json({ success: true, message: `客户端 ${clientId} 已断开连接` }); } else { res.status(404).json({ success: false, message: `客户端 ${clientId} 未找到` }); } } catch (error) { res.status(500).json({ success: false, message: error.message || '断开客户端失败' }); } } static async publishMessage(req, res) { try { const { topic, payload, qos, retain } = req.body; if (!topic || payload === undefined) { res.status(400).json({ success: false, message: '缺少必要参数: topic, payload' }); return; } const broker = mqttBrokerService_1.MqttBrokerService.getInstance(); await broker.publish(topic, typeof payload === 'object' ? JSON.stringify(payload) : String(payload), { qos: qos || 0, retain: retain || false }); res.json({ success: true, message: '消息发布成功' }); } catch (error) { res.status(500).json({ success: false, message: error.message || '发布消息失败' }); } } } exports.MqttBrokerController = MqttBrokerController; //# sourceMappingURL=mqttBrokerController.js.map