2025-05-13 16:37:22 +08:00
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
|
using MQTTnet.Protocol;
|
|
|
|
|
|
using ZR.Common.MqttHelper;
|
2025-09-21 13:52:06 +08:00
|
|
|
|
using ZR.Service.mqtt;
|
2025-05-13 16:37:22 +08:00
|
|
|
|
|
|
|
|
|
|
namespace ZR.Admin.WebApi.Controllers
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// agv 相关接口
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
|
|
|
|
[Route("/mqtt")]
|
|
|
|
|
|
public class MqttController : BaseController
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly MqttService _mqttService;
|
|
|
|
|
|
|
|
|
|
|
|
public MqttController(MqttService mqttService)
|
|
|
|
|
|
{
|
|
|
|
|
|
_mqttService = mqttService;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 1. 发布信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="topic">主题</param>
|
|
|
|
|
|
/// <param name="payload">信息</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
|
|
|
|
|
|
[HttpPost("publish")]
|
|
|
|
|
|
public async Task<IActionResult> PublishMessage(string topic, string payload)
|
|
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
// 发布消息到MQTT代理服务器
|
|
|
|
|
|
await _mqttService.PublishAsync(
|
|
|
|
|
|
topic,
|
|
|
|
|
|
payload,
|
|
|
|
|
|
MqttQualityOfServiceLevel.AtLeastOnce,
|
|
|
|
|
|
false
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
return Ok("消息已发布");
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
return StatusCode(500, $"发布消息失败: {ex.Message}");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|