| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- "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
|