From d47c9a898d46c547b2a60e83b0db67b9d194c8dc Mon Sep 17 00:00:00 2001 From: zhangbin <460190368@qq.com> Date: Wed, 18 Jun 2025 15:44:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E6=9C=BA=E5=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ServiceApp/AirportMaintenanceApp.cs | 96 ++++++++++++++- OpenAuth.App/ServiceApp/ManageApp.cs | 24 ++++ OpenAuth.Repository/Domain/LasaDronePort‌.cs | 5 +- OpenAuth.Repository/Domain/LasaGateway.cs | 60 +++++++++ OpenAuth.Repository/Domain/LasaLog.cs | 50 ++++++++ OpenAuth.Repository/SugarDbContext.cs | 2 + .../AirportMaintenanceController.cs | 93 ++++++++------ .../Model/mqtt/MqttHostedService.cs | 10 +- OpenAuth.WebApi/Model/mqtt/ThingOsdHandler.cs | 35 +++++- .../Model/mqtt/ThingRequestHandler.cs | 115 +++++++++++++----- .../Model/mqtt/ThingServiceHandler.cs | 9 +- OpenAuth.WebApi/Startup.cs | 2 +- OpenAuth.WebApi/appsettings.json | 2 +- 13 files changed, 420 insertions(+), 83 deletions(-) create mode 100644 OpenAuth.Repository/Domain/LasaGateway.cs create mode 100644 OpenAuth.Repository/Domain/LasaLog.cs diff --git a/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs b/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs index 4214b7f..82da0a6 100644 --- a/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs +++ b/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs @@ -89,9 +89,84 @@ namespace OpenAuth.App.ServiceApp return false; } + } + + //使用网关 + public async Task> GetGateway() + { + RefAsync totalCount = 0; + using (var db = UnitWork.CreateContext()) + { + var info = await db.LasaGateway.AsQueryable().Where(r => r.BindStatus == 0).FirstAsync(); + + if (info != null) + { + return new Response + { + Code = 200, + Message = "获取设备绑定码成功", + Result = info + }; + } + else + { + //如果网关不存在,则创建一个新的 + var newGateway = new LasaGateway + { + Id = Guid.NewGuid().ToString(), + CreateTime = DateTime.Now, + GatewayAccount="sdhc", + GatewaySn = Guid.NewGuid().ToString("N").Substring(0, 8).ToUpper(), // 生成一个新的 + MqttGateway= "175.27.168.120:6011", + MqttPassword = "", + OrgId = "371300", // 默认组织ID + BindStatus = 0 // 未绑定状态 + }; + await db.LasaGateway.InsertAsync(newGateway); + if (db.Commit()) + { + return new Response + { + Code = 200, + Message = "获取设备绑定码成功", + Result = newGateway + }; + } + else + { + return new Response + { + Code = 500, + Message = "获取设备绑定码失败", + }; + } + } + + } + } + public async Task UpdateGateway(string gateway,string did) + { + using (var db = UnitWork.CreateContext()) + { + var flag = await db.LasaGateway.UpdateAsync(it => new LasaGateway() + { + BindStatus = 1, + Did = did, + UpdateTime = DateTime.Now, + }, it => it.GatewaySn == gateway); + if (db.Commit()) + return true; + else + return false; + } + } #region 健康报警 - //添加健康报警 + /// + /// 添加健康报警 + /// + /// + /// public bool AddManageDeviceHms(List info) { using (var db = UnitWork.CreateContext()) @@ -104,5 +179,24 @@ namespace OpenAuth.App.ServiceApp } } #endregion + + #region 日志 + /// + /// 添加日志 + /// + /// + /// + public bool AddLog(LasaLog info) + { + using (var db = UnitWork.CreateContext()) + { + var flag = db.LasaLog.Insert(info); + if (db.Commit()) + return true; + else + return false; + } + } + #endregion } } diff --git a/OpenAuth.App/ServiceApp/ManageApp.cs b/OpenAuth.App/ServiceApp/ManageApp.cs index 4f374bc..d2df6ce 100644 --- a/OpenAuth.App/ServiceApp/ManageApp.cs +++ b/OpenAuth.App/ServiceApp/ManageApp.cs @@ -92,6 +92,18 @@ namespace OpenAuth.App.ServiceApp } } + //添加机场信息 + public bool AddDronePort(LasaDronePort info) + { + using (var db = UnitWork.CreateContext()) + { + var flag = db.LasaDronePort.Insert(info); + if (db.Commit()) + return true; + else + return false; + } + } #endregion /// @@ -151,6 +163,18 @@ namespace OpenAuth.App.ServiceApp return new Response { Result = false, Message = "删除失败" }; } } + //添加无人机 + public bool AddLasaUav(LasaUav info) + { + using (var db = UnitWork.CreateContext()) + { + var flag = db.LasaUav.Insert(info); + if (db.Commit()) + return true; + else + return false; + } + } /// /// 获取任务列表 diff --git a/OpenAuth.Repository/Domain/LasaDronePort‌.cs b/OpenAuth.Repository/Domain/LasaDronePort‌.cs index 70c00ac..36a9642 100644 --- a/OpenAuth.Repository/Domain/LasaDronePort‌.cs +++ b/OpenAuth.Repository/Domain/LasaDronePort‌.cs @@ -12,8 +12,9 @@ namespace OpenAuth.Repository.Domain public string SerialNumber { get; set; } public string FirmwareVersion { get; set; } public int BindStatus { get; set; } - public DateTime? UpdateTime { get; set; } - public long OrgId { get; set; } + public DateTime? UpdateTime { get; set; } + public DateTime? CreateTime { get; set; } + public string OrgId { get; set; } public string Sn { get; set; } public string DevicePicUrl { get; set; } public string Did { get; set; } diff --git a/OpenAuth.Repository/Domain/LasaGateway.cs b/OpenAuth.Repository/Domain/LasaGateway.cs new file mode 100644 index 0000000..ea523eb --- /dev/null +++ b/OpenAuth.Repository/Domain/LasaGateway.cs @@ -0,0 +1,60 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OpenAuth.Repository.Domain +{ + [SugarTable("lasa_gateway")] + public class LasaGateway + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true)] + public string Id { get; set; } + /// + /// 绑定状态 + /// + public int BindStatus { get; set; } + /// + /// 创建时间 + /// + public DateTime? CreateTime { get; set; } + /// + /// Did + /// + public string Did { get; set; } + /// + /// 网关编号 + /// + public string GatewayAccount { get; set; } + /// + /// 网关sn + /// + public string GatewaySn { get; set; } + /// + /// 网关地址 + /// + public string MqttGateway { get; set; } + /// + /// 网关密码 + /// + public string MqttPassword { get; set; } + /// + /// 网关账号 + /// + public string MqttUserName { get; set; } + /// + /// 组织id + /// + public string OrgId { get; set; } + /// + /// 更新时间 + /// + public DateTime UpdateTime { get; set; } + + } +} diff --git a/OpenAuth.Repository/Domain/LasaLog.cs b/OpenAuth.Repository/Domain/LasaLog.cs new file mode 100644 index 0000000..aa45588 --- /dev/null +++ b/OpenAuth.Repository/Domain/LasaLog.cs @@ -0,0 +1,50 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Nodes; +using System.Threading.Tasks; + +namespace OpenAuth.Repository.Domain +{ + [SugarTable("lasa_log")] + public class LasaLog + { + /// + /// Desc:标识 + /// Default: + /// Nullable:False + /// + [SugarColumn(IsPrimaryKey = true)] + public string Id { get; set; } + /// + /// Desc:专题 + /// Default: + /// Nullable:False + /// + public string Topic { get; set; } + + /// + /// Desc:方法 + /// Default: + /// Nullable:False + /// + public string Method { get; set; } + + /// + /// Desc:创建时间 + /// Default: + /// Nullable:True + /// + public DateTime CreateTime { get; set; } + + /// + /// Desc:数据 + /// Default: + /// Nullable:True + /// + [SugarColumn(IsJson = true)] + public JsonObject Data { get; set; } + } +} diff --git a/OpenAuth.Repository/SugarDbContext.cs b/OpenAuth.Repository/SugarDbContext.cs index f286a2d..0e92a9c 100644 --- a/OpenAuth.Repository/SugarDbContext.cs +++ b/OpenAuth.Repository/SugarDbContext.cs @@ -70,7 +70,9 @@ namespace OpenAuth.Repository public SugarRepositiry LasaSpaceLockFly { get; set; } public SugarRepositiry LasaDeviceBindingCode { get; set; } + public SugarRepositiry LasaGateway { get; set; } public SugarRepositiry LasaManageDeviceHms { get; set; } + public SugarRepositiry LasaLog { get; set; } #endregion } } diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs index 2400980..23e1378 100644 --- a/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs @@ -1,5 +1,6 @@ using DocumentFormat.OpenXml.Math; using Infrastructure; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using MQTTnet; using OpenAuth.App.ServiceApp; @@ -29,6 +30,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers /// /// [HttpPost] + [Obsolete] public async Task> GetDeviceBindingCode() { var result = new Response(); @@ -72,6 +74,27 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers return result; } + /// + /// 机场注册 注册码生成 + /// + /// + [HttpPost] + [AllowAnonymous] + public async Task> GetGateway() + { + var result = new Response(); + try + { + result = await _app.GetGateway(); + } + catch (Exception ex) + { + result.Code = 500; + result.Message = ex.Message; + } + + return result; + } /// /// 切换相机 @@ -83,31 +106,31 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers Response response = new Response(); try { - var videoids = zhiboReq.videoId.Split("/"); - var topicRequest = $"thing/product/" + videoids[0] +"/services"; - var requestData = new + var videoids = zhiboReq.videoId.Split("/"); + var topicRequest = $"thing/product/" + videoids[0] + "/services"; + var requestData = new + { + bid = Guid.NewGuid().ToString(), + method = "live_camera_change", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new { - bid = Guid.NewGuid().ToString(), - method = "live_camera_change", - tid = Guid.NewGuid().ToString(), - timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), - data = new - { - camera_position = zhiboReq.position, - video_id = zhiboReq.videoId - } - }; - string payload = JsonSerializer.Serialize(requestData); - await _mqttClientManager.PublishAsync(topicRequest, payload); + camera_position = zhiboReq.position, + video_id = zhiboReq.videoId + } + }; + string payload = JsonSerializer.Serialize(requestData); + await _mqttClientManager.PublishAsync(topicRequest, payload); - var topicRequest1 = $"thing/product/" + videoids[0] +"/services_reply"; + var topicRequest1 = $"thing/product/" + videoids[0] + "/services_reply"; await _mqttClientManager.SubscribeAsync(topicRequest1, async (args) => { var payload = args.ApplicationMessage.Payload; var message = Encoding.UTF8.GetString(payload); Console.WriteLine($"收到主题 [{args.ApplicationMessage.Topic}] 的消息: {message}"); - await Task.CompletedTask; + await Task.CompletedTask; }); response.Result = 0; @@ -118,7 +141,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers response.Message = ex.Message; } return response; ; - + } @@ -169,7 +192,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers response.Code = 500; response.Message = ex.Message; } - return response; + return response; } @@ -219,7 +242,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers response.Code = 500; response.Message = ex.Message; } - return response; + return response; } @@ -229,7 +252,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers /// /// [HttpPost] - public async Task> EndLive( Zhibo zhiboReq) + public async Task> EndLive(Zhibo zhiboReq) { Response response = new Response(); try @@ -237,19 +260,19 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers var videoids = zhiboReq.videoId.Split("/"); var topicRequest = $"thing/product/" + videoids[0] + "/services"; var requestData = new + { + bid = Guid.NewGuid().ToString(), + method = "live_stop_push", + tid = Guid.NewGuid().ToString(), + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + data = new { - bid = Guid.NewGuid().ToString(), - method = "live_stop_push", - tid = Guid.NewGuid().ToString(), - timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), - data = new - { - - video_id = zhiboReq.videoId - } - }; - string payload = JsonSerializer.Serialize(requestData); - await _mqttClientManager.PublishAsync(topicRequest, payload); + + video_id = zhiboReq.videoId + } + }; + string payload = JsonSerializer.Serialize(requestData); + await _mqttClientManager.PublishAsync(topicRequest, payload); var topicRequest1 = $"thing/product/" + videoids[0] + "/services_reply"; @@ -262,8 +285,8 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers }); response.Result = 0; - - + + } catch (Exception ex) diff --git a/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs b/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs index cc59d7f..1130c6d 100644 --- a/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs +++ b/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs @@ -26,9 +26,13 @@ namespace OpenAuth.WebApi.Model.mqtt ); await mqttCenter.ConnectAndSubscribeAsync( - //"thing/product/8UUXN5400A079H/osd", - //"thing/product/8UUXN5400A079H/services", - "thing/product/8UUXN5400A079H/events1" + // "thing/product/8UUXN5400A079H/osd", + // "thing/product/1581F8HGX254V00A0BUY/osd" + // "thing/product/8UUXN5400A079H/services", + //"thing/product/8UUXN5400A079H/services_reply" + "thing/product/8UUXN5400A079H/requests", + "thing/product/8UUXN5400A079H/services_reply" + //"thing/product/8UUXN5400A079H/events" ); } diff --git a/OpenAuth.WebApi/Model/mqtt/ThingOsdHandler.cs b/OpenAuth.WebApi/Model/mqtt/ThingOsdHandler.cs index 5719caf..2cbe1ba 100644 --- a/OpenAuth.WebApi/Model/mqtt/ThingOsdHandler.cs +++ b/OpenAuth.WebApi/Model/mqtt/ThingOsdHandler.cs @@ -1,14 +1,21 @@ -using Infrastructure.CloudSdk.mqttmessagecenter; +using Infrastructure.Cache; +using Infrastructure.CloudSdk.mqttmessagecenter; +using OpenAuth.App.ServiceApp; +using OpenAuth.Repository.Domain; +using System.Text.Json.Nodes; namespace OpenAuth.WebApi.Model.mqtt { public class ThingOsdHandler : IMqttMessageHandler { private readonly ILogger _logger; - - public ThingOsdHandler(ILogger logger) + AirportMaintenanceApp _app; + private readonly ICacheContext _cache; + public ThingOsdHandler(ILogger logger, AirportMaintenanceApp app, ICacheContext cache) { _logger = logger; + _app = app; + _cache = cache; } public bool CanHandle(string topic) @@ -20,10 +27,26 @@ namespace OpenAuth.WebApi.Model.mqtt { _logger.LogError($"[osd] Topic={topic}, Payload={payload}"); Console.WriteLine($"[osd] Topic={topic}, Payload={payload}"); - if (payload.Contains("")) + var root = JsonNode.Parse(payload)?.AsObject(); + _app.AddLog(new LasaLog { - - } + Id = Guid.NewGuid().ToString(), + Topic = topic, + Method = root["method"]?.ToString() ?? "", + CreateTime = DateTime.Now, + Data = root + }); + var sub_device = root["data"]?["sub_device"]?.ToString() ?? ""; + if (!string.IsNullOrEmpty(sub_device)) + { + var data = new + { + device_sn = root["data"]?["sub_device"]?["device_sn"]?.ToString() ?? "", + device_online_status = root["data"]?["sub_device"]?["device_online_status"]?.ToString() ?? "", + mode_code = root["data"]?["mode_code"]?.ToString() ?? "", + }; + var a = _cache.Set("DeviceState", data, DateTime.Now.AddMinutes(1)); + } // 自定义处理逻辑 return Task.CompletedTask; } diff --git a/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs b/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs index bfb53d5..882b708 100644 --- a/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs +++ b/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs @@ -1,5 +1,6 @@ using Infrastructure.CloudSdk.mqttmessagecenter; using OpenAuth.App.ServiceApp; +using OpenAuth.Repository.Domain; using System.Text.Json; using System.Text.Json.Nodes; @@ -10,20 +11,22 @@ namespace OpenAuth.WebApi.Model.mqtt private readonly ILogger _logger; private readonly MqttClientManager _mqttClientManager; AirportMaintenanceApp _app; + ManageApp _manageApp; - public ThingRequestHandler(ILogger logger, MqttClientManager mqttClientManager, AirportMaintenanceApp app) + public ThingRequestHandler(ILogger logger, MqttClientManager mqttClientManager, AirportMaintenanceApp app, ManageApp manageApp) { _logger = logger; _mqttClientManager = mqttClientManager; _app = app; + _manageApp = manageApp; } public bool CanHandle(string topic) { - return topic.Contains("/requests"); + return topic.Contains("/requests1"); } string bid, tid, previousgateway; - int timestamp; + long timestamp; public async Task HandleAsync(string topic, string payload) { _logger.LogError($"[Request] Topic={topic}, Payload={payload}"); @@ -41,13 +44,13 @@ namespace OpenAuth.WebApi.Model.mqtt } bid = root["bid"]?.ToString() ?? ""; tid = root["tid"]?.ToString() ?? ""; - timestamp = int.Parse(root["timestamp"]?.ToString() ?? "0"); + timestamp = long.Parse(root["timestamp"]?.ToString() ?? "0"); var requestData = new { bid = bid, method = "config", tid = tid, - timestamp = timestamp, + timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), gateway = gateway, data = new { @@ -60,12 +63,34 @@ namespace OpenAuth.WebApi.Model.mqtt } }; string payloadreq = JsonSerializer.Serialize(requestData); - await _mqttClientManager.PublishAsync($"thing/product/{gateway}/requests_reply", payloadreq); - await _app.UpdateCodeStatus(gateway); + await _mqttClientManager.PublishAsync($"thing/product/{gateway}/requests1_reply", payloadreq); + await _app.UpdateGateway(gateway, tid); } if (payload.Contains("airport_bind_status")) { //解析返回的设备sn 先不解析,先测试绑定 + var root = JsonNode.Parse(payload)?.AsObject(); + if (root == null) + { + return; + } + // 从 data.devices 中提取 sn 列表 + var snList = root?["data"]?["devices"]?.AsArray() + .Select(d => d?["sn"]?.ToString()) + .Where(sn => !string.IsNullOrEmpty(sn)) + .ToList(); + + // 生成 bind_status 对象列表 + var bindStatusList = snList?.Select(sn => new + { + device_callsign = "山东慧创", + is_device_bind_organization = true, + organization_id = "379", + organization_name = "山东慧创", + sn = sn + }).ToArray(); + + // 构造最终请求对象 var requestData = new { bid = Guid.NewGuid().ToString(), @@ -73,25 +98,7 @@ namespace OpenAuth.WebApi.Model.mqtt { output = new { - bind_status = new[] - { - new - { - device_callsign = "山东慧创", - is_device_bind_organization = true, - organization_id = "379", - organization_name = "山东慧创", - sn = "8UUXN5400A079H" - }, - new - { - device_callsign = "山东慧创", - is_device_bind_organization = true, - organization_id = "379", - organization_name = "山东慧创", - sn = "1581F8HGX254V00A0BUY" - } - } + bind_status = bindStatusList }, result = 0 }, @@ -101,11 +108,13 @@ namespace OpenAuth.WebApi.Model.mqtt }; string payloadreq = JsonSerializer.Serialize(requestData); string getway = topic.Split('/')[2]; - await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests_reply", payloadreq); + await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests1_reply", payloadreq); } - if (payload.Contains("airport_organization_get")) - { + if (payload.Contains("airport_organization_get"))// + { + var root = JsonNode.Parse(payload)?.AsObject(); + var requestData = new { bid = Guid.NewGuid().ToString(), @@ -123,11 +132,51 @@ namespace OpenAuth.WebApi.Model.mqtt }; string payloadreq = JsonSerializer.Serialize(requestData); string getway = topic.Split('/')[2]; - await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests_reply", payloadreq); + await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests1_reply", payloadreq); } if (payload.Contains("airport_organization_bind")) { + + // 解析 JSON + var root = JsonNode.Parse(payload)?.AsObject(); + // 获取 bind_devices 数组 + var bindDevices = root?["data"]?["bind_devices"]?.AsArray(); + string dronesn = "", uavsn = ""; + LasaDronePort lasaDronePort = new LasaDronePort(); + LasaUav lasaUav = new LasaUav(); + if (bindDevices != null) + { + foreach (var device in bindDevices) + { + var obj = device?.AsObject(); + if (obj["device_model_key"].ToString().Contains("3-")) + { + lasaDronePort.Id = Guid.NewGuid().ToString(); + lasaDronePort.OrgId = obj["organization_id"]?.ToString(); + lasaDronePort.CreateTime = DateTime.Now; + lasaDronePort.IsDelete = false; + lasaDronePort.TypeId = "Dock 3"; + lasaDronePort.Sn = obj["sn"].ToString(); + lasaDronePort.BindStatus = 1; + lasaDronePort.Name = "机场"; + dronesn = obj["sn"].ToString(); + } + else + { + lasaUav.Id = Guid.NewGuid().ToString(); + lasaUav.IsDelete = false; + //lasaUav.TypeId = obj["device_model_key"].ToString(); + lasaUav.TypeId = "M4TD"; + lasaUav.Sn = obj["sn"].ToString(); + lasaUav.PId = lasaDronePort.Id; + lasaUav.Name = "飞行器"; + uavsn = obj["sn"].ToString(); + } + } + } + _manageApp.AddDronePort(lasaDronePort); + _manageApp.AddLasaUav(lasaUav); var requestData = new { bid = Guid.NewGuid().ToString(), @@ -140,12 +189,12 @@ namespace OpenAuth.WebApi.Model.mqtt new { err_code = 210231, - sn = "8UUXN5400A079H" + sn = dronesn }, new { err_code = 210231, - sn = "1581F8HGX254V00A0BUY" + sn = uavsn } } }, @@ -157,7 +206,7 @@ namespace OpenAuth.WebApi.Model.mqtt }; string payloadreq = JsonSerializer.Serialize(requestData); string getway = topic.Split('/')[2]; - await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests_reply", payloadreq); + await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests1_reply", payloadreq); } } } diff --git a/OpenAuth.WebApi/Model/mqtt/ThingServiceHandler.cs b/OpenAuth.WebApi/Model/mqtt/ThingServiceHandler.cs index b5503a8..6717b9e 100644 --- a/OpenAuth.WebApi/Model/mqtt/ThingServiceHandler.cs +++ b/OpenAuth.WebApi/Model/mqtt/ThingServiceHandler.cs @@ -1,4 +1,7 @@ using Infrastructure.CloudSdk.mqttmessagecenter; +using OpenAuth.WebApi.Model.mqtt.ModelResponse; +using System.Text.Json; +using System.Text.Json.Nodes; namespace OpenAuth.WebApi.Model.mqtt { @@ -13,13 +16,17 @@ namespace OpenAuth.WebApi.Model.mqtt public bool CanHandle(string topic) { - return topic.Contains("/services"); + return topic.Contains("/services_reply"); } public Task HandleAsync(string topic, string payload) { _logger.LogError($"[Service] Topic={topic}, Payload={payload}"); Console.WriteLine($"[Service] Topic={topic}, Payload={payload}"); + if (payload.Contains("live_start_push"))//直播 + { + var root = JsonNode.Parse(payload)?.AsObject(); + } return Task.CompletedTask; } } diff --git a/OpenAuth.WebApi/Startup.cs b/OpenAuth.WebApi/Startup.cs index 295c81e..3054e9c 100644 --- a/OpenAuth.WebApi/Startup.cs +++ b/OpenAuth.WebApi/Startup.cs @@ -332,7 +332,7 @@ namespace OpenAuth.WebApi #region mqtt //services.AddSingleton(); //services.AddSingleton(); - //services.AddSingleton(); + services.AddSingleton(); //services.AddSingleton(); services.AddHostedService(); #endregion diff --git a/OpenAuth.WebApi/appsettings.json b/OpenAuth.WebApi/appsettings.json index 3fb3e36..ffe292e 100644 --- a/OpenAuth.WebApi/appsettings.json +++ b/OpenAuth.WebApi/appsettings.json @@ -24,7 +24,7 @@ "RedisConf": { "Conn": "175.27.168.120:6050,password=HopetryRedis1406", //"Conn": "127.0.0.1:6379,password=123456", - "Database": 5 + "Database": 7 }, //redis配置 "HttpHost": "http://*:10070 ", From 6491118b443fa57ee1b77727ecef77c510c73257 Mon Sep 17 00:00:00 2001 From: zhangbin <460190368@qq.com> Date: Wed, 18 Jun 2025 15:44:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs b/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs index 882b708..9ef6a32 100644 --- a/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs +++ b/OpenAuth.WebApi/Model/mqtt/ThingRequestHandler.cs @@ -23,7 +23,7 @@ namespace OpenAuth.WebApi.Model.mqtt public bool CanHandle(string topic) { - return topic.Contains("/requests1"); + return topic.Contains("/requests"); } string bid, tid, previousgateway; long timestamp; @@ -63,7 +63,7 @@ namespace OpenAuth.WebApi.Model.mqtt } }; string payloadreq = JsonSerializer.Serialize(requestData); - await _mqttClientManager.PublishAsync($"thing/product/{gateway}/requests1_reply", payloadreq); + await _mqttClientManager.PublishAsync($"thing/product/{gateway}/requests_reply", payloadreq); await _app.UpdateGateway(gateway, tid); } if (payload.Contains("airport_bind_status")) @@ -108,7 +108,7 @@ namespace OpenAuth.WebApi.Model.mqtt }; string payloadreq = JsonSerializer.Serialize(requestData); string getway = topic.Split('/')[2]; - await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests1_reply", payloadreq); + await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests_reply", payloadreq); } if (payload.Contains("airport_organization_get"))// @@ -132,7 +132,7 @@ namespace OpenAuth.WebApi.Model.mqtt }; string payloadreq = JsonSerializer.Serialize(requestData); string getway = topic.Split('/')[2]; - await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests1_reply", payloadreq); + await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests_reply", payloadreq); } if (payload.Contains("airport_organization_bind")) @@ -206,7 +206,7 @@ namespace OpenAuth.WebApi.Model.mqtt }; string payloadreq = JsonSerializer.Serialize(requestData); string getway = topic.Split('/')[2]; - await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests1_reply", payloadreq); + await _mqttClientManager.PublishAsync($"thing/product/{getway}/requests_reply", payloadreq); } } }