From 79406ad4a0a4565293466a4df62d1943812f1fec Mon Sep 17 00:00:00 2001 From: "2248356998 qq.com" <2248356998@qq.com> Date: Sat, 27 Sep 2025 23:59:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Encryptions/PBKDF2Encryption.cs | 5 ++--- src/Directory.Build.props | 8 ++++---- .../DebugPages/ChannelComponent.razor | 2 +- .../Locales/en-US.json | 4 ++-- .../Locales/zh-CN.json | 4 ++-- .../Channel/ChannelOptionsBase.cs | 4 ++-- .../Extension/ChannelOptionsExtensions.cs | 16 +++++++++++---- .../Channel/IChannelOptions.cs | 6 +----- .../DeviceSingleStreamDataHandleAdapter.cs | 2 +- .../Device/DeviceBase.cs | 2 -- .../Locales/en-US.json | 2 +- .../Locales/zh-CN.json | 2 +- .../BusinessBaseWithCacheIntervalScript.cs | 2 -- .../Entity/Channel.cs | 6 +++--- .../Locales/en-US.json | 2 +- .../Locales/zh-CN.json | 2 +- .../Services/Channel/ChannelService.cs | 6 +++++- .../Services/Device/DeviceService.cs | 9 ++++++++- .../Channel/ChannelEditComponent.razor | 2 +- .../Channel/ChannelRuntimeInfo1.razor | 2 +- .../Pages/RulesEngine/RulesPage.razor.cs | 3 ++- .../Benchmark/ModbusBenchmark.cs | 20 +++++++++---------- .../Program.cs | 10 +++++----- .../QuestDB/QuestDBProducer.cs | 1 - .../MqttServer/MqttServer.cs | 1 - .../MqttServer/MqttServer.other.cs | 1 - 26 files changed, 66 insertions(+), 58 deletions(-) diff --git a/src/Admin/ThingsGateway.Furion/DataEncryption/Encryptions/PBKDF2Encryption.cs b/src/Admin/ThingsGateway.Furion/DataEncryption/Encryptions/PBKDF2Encryption.cs index 1cca21a05..a13dc28ec 100644 --- a/src/Admin/ThingsGateway.Furion/DataEncryption/Encryptions/PBKDF2Encryption.cs +++ b/src/Admin/ThingsGateway.Furion/DataEncryption/Encryptions/PBKDF2Encryption.cs @@ -10,7 +10,6 @@ // ------------------------------------------------------------------------ using System.Security.Cryptography; -using System.Text; namespace ThingsGateway.DataEncryption; @@ -72,8 +71,8 @@ public static class PBKDF2Encryption #if NET10_0_OR_GREATER var computedHash = Rfc2898DeriveBytes.Pbkdf2(Encoding.UTF8.GetBytes(text), saltBytes, iterationCount, HashAlgorithmName.SHA256, derivedKeyLength); #else - using var pbkdf2 = new Rfc2898DeriveBytes(text, saltBytes, iterationCount, HashAlgorithmName.SHA256); - var computedHash = pbkdf2.GetBytes(derivedKeyLength); + using var pbkdf2 = new Rfc2898DeriveBytes(text, saltBytes, iterationCount, HashAlgorithmName.SHA256); + var computedHash = pbkdf2.GetBytes(derivedKeyLength); #endif return computedHash.SequenceEqual(storedHashBytes); diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 2936b855a..dc6a6f675 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,9 +1,9 @@ - 10.11.73 - 10.11.73 - 10.11.73 + 10.11.75 + 10.11.75 + 10.11.75 10.11.6 10.11.6 8.0.20 @@ -12,7 +12,7 @@ false 10.11.70 10.11.70 - 4.0.0-beta.57 + 4.0.0-beta.70 diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelComponent.razor b/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelComponent.razor index 23ca485ec..817e0fc6d 100644 --- a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelComponent.razor +++ b/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelComponent.razor @@ -36,7 +36,7 @@ - + diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json b/src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json index d26519888..01ea59cde 100644 --- a/src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json +++ b/src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json @@ -42,7 +42,7 @@ "PortName": "COM Port", "RemoteUrl": "Remote IP Address", "RtsEnable": "Rts", - "StreamAsync": "StreamAsync", + "Handshake": "Handshake", "SaveChannel": "Add/Modify Channel", "StopBits": "Stop Bits" }, @@ -102,7 +102,7 @@ "PortName": "PortName", "RemoteUrl": "RemoteUrl", "RtsEnable": "RtsEnable", - "StreamAsync": "StreamAsync", + "Handshake": "Handshake", "StopBits": "StopBits" } } \ No newline at end of file diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json b/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json index dcdca985d..9d4c1cd7d 100644 --- a/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json +++ b/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json @@ -40,7 +40,7 @@ "PortName": "COM口", "RemoteUrl": "远程url", "RtsEnable": "Rts", - "StreamAsync": "串口流读写", + "Handshake": "Handshake", "SaveChannel": "添加/修改通道", "StopBits": "停止位" }, @@ -100,7 +100,7 @@ "PortName": "COM口", "RemoteUrl": "远程url", "RtsEnable": "Rts", - "StreamAsync": "串口流读写", + "Handshake": "串口流读写", "StopBits": "停止位" } } \ No newline at end of file diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptionsBase.cs b/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptionsBase.cs index 4cecb3a41..95bc15db3 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptionsBase.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/ChannelOptionsBase.cs @@ -69,9 +69,9 @@ namespace ThingsGateway.Foundation public virtual bool DtrEnable { get; set; } = true; /// - /// StreamAsync + /// Handshake /// - public virtual bool StreamAsync { get; set; } = false; + public virtual Handshake Handshake { get; set; } /// /// RtsEnable diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs b/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs index 958ead510..3af329860 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelOptionsExtensions.cs @@ -9,7 +9,6 @@ //------------------------------------------------------------------------------ using ThingsGateway.Foundation.Extension.String; -using ThingsGateway.NewLife; using TouchSocket.SerialPorts; @@ -141,10 +140,19 @@ public static class ChannelOptionsExtensions /// private static SerialPortChannel GetSerialPort(this TouchSocketConfig config, IChannelOptions channelOptions) { - var serialPortOption = FastMapper.Mapper(channelOptions); - serialPortOption.ThrowIfNull(nameof(SerialPortOption)); + channelOptions.ThrowIfNull(nameof(SerialPortOption)); channelOptions.Config = config; - config.SetSerialPortOption(serialPortOption); + config.SetSerialPortOption(options => + { + options.PortName = channelOptions.PortName; + options.BaudRate = channelOptions.BaudRate; + options.DataBits = channelOptions.DataBits; + options.Parity = channelOptions.Parity; + options.StopBits = channelOptions.StopBits; + options.DtrEnable = channelOptions.DtrEnable; + options.RtsEnable = channelOptions.RtsEnable; + options.Handshake = channelOptions.Handshake; + }); //载入配置 SerialPortChannel serialPortChannel = new SerialPortChannel(channelOptions); return serialPortChannel; diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/IChannelOptions.cs b/src/Foundation/ThingsGateway.Foundation/Channel/IChannelOptions.cs index e0209c982..b02d46686 100644 --- a/src/Foundation/ThingsGateway.Foundation/Channel/IChannelOptions.cs +++ b/src/Foundation/ThingsGateway.Foundation/Channel/IChannelOptions.cs @@ -72,11 +72,7 @@ public interface IChannelOptions /// bool RtsEnable { get; set; } - /// - /// StreamAsync - /// - bool StreamAsync { get; set; } - + Handshake Handshake { get; set; } #endregion /// /// 最大并发数量 diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceSingleStreamDataHandleAdapter.cs b/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceSingleStreamDataHandleAdapter.cs index b3194db69..1023f7485 100644 --- a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceSingleStreamDataHandleAdapter.cs +++ b/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/DeviceSingleStreamDataHandleAdapter.cs @@ -182,7 +182,7 @@ public class DeviceSingleStreamDataHandleAdapter : CustomDataHandlingA Span span = default; if (Logger?.LogLevel <= LogLevel.Trace) { - span = writer.GetSpan(sendMessage.MaxLength); + span = writer.GetSpan(sendMessage.MaxLength); } sendMessage.Build(ref writer); diff --git a/src/Foundation/ThingsGateway.Foundation/Device/DeviceBase.cs b/src/Foundation/ThingsGateway.Foundation/Device/DeviceBase.cs index 7edf877e4..7e7f69a53 100644 --- a/src/Foundation/ThingsGateway.Foundation/Device/DeviceBase.cs +++ b/src/Foundation/ThingsGateway.Foundation/Device/DeviceBase.cs @@ -18,8 +18,6 @@ using ThingsGateway.NewLife; using ThingsGateway.NewLife.Collections; using ThingsGateway.NewLife.Extension; -using TouchSocket.SerialPorts; - namespace ThingsGateway.Foundation; /// diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/en-US.json b/src/Foundation/ThingsGateway.Foundation/Locales/en-US.json index cd531b8e3..36ff5b4f8 100644 --- a/src/Foundation/ThingsGateway.Foundation/Locales/en-US.json +++ b/src/Foundation/ThingsGateway.Foundation/Locales/en-US.json @@ -22,7 +22,7 @@ "PortName": "PortName", "RemoteUrl": "RemoteUrl", "RtsEnable": "RtsEnable", - "StreamAsync": "StreamAsync", + "Handshake": "Handshake", "StopBits": "StopBits" }, "ThingsGateway.Foundation.ConverterConfig": { diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json b/src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json index 91781f82b..c9af2032f 100644 --- a/src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json +++ b/src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json @@ -22,7 +22,7 @@ "PortName": "COM口", "RemoteUrl": "远程url", "RtsEnable": "Rts", - "StreamAsync": "串口流读写", + "Handshake": "Handshake", "StopBits": "停止位" }, "ThingsGateway.Foundation.ConverterConfig": { diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalScript.cs b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalScript.cs index 82447d41d..3759b892f 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalScript.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Driver/Business/Cache/BusinessBaseWithCacheIntervalScript.cs @@ -16,8 +16,6 @@ using ThingsGateway.NewLife.Json.Extension; using TouchSocket.Core; -using static System.Net.Mime.MediaTypeNames; - namespace ThingsGateway.Gateway.Application; /// diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs b/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs index cc1cee2ed..6695a4eb0 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs @@ -138,11 +138,11 @@ public class Channel : ChannelOptionsBase, IPrimaryIdEntity, IBaseDataEntity, IB public override bool RtsEnable { get; set; } /// - /// StreamAsync + /// Handshake /// - [SugarColumn(ColumnDescription = "StreamAsync", IsNullable = true)] + [SugarColumn(ColumnDescription = "Handshake", IsNullable = true)] [AutoGenerateColumn(Visible = false, Filterable = true, Sortable = true)] - public override bool StreamAsync { get; set; } = false; + public override Handshake Handshake { get; set; } /// /// 缓存超时 diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json b/src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json index d476430de..7e0090a10 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json +++ b/src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json @@ -307,7 +307,7 @@ "PortName": "PortName", "RemoteUrl": "RemoteUrl", "RtsEnable": "RtsEnable", - "StreamAsync": "StreamAsync", + "Handshake": "Handshake", "SaveChannel": "Add/Modify Channel", "SortCode": "SortCode", "StopBits": "StopBits", diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json b/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json index c6132fb91..41227bf11 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json +++ b/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json @@ -306,7 +306,7 @@ "PortName": "COM口", "RemoteUrl": "远程url", "RtsEnable": "Rts", - "StreamAsync": "串口流读写", + "Handshake": "Handshake", "SaveChannel": "添加/修改通道", "SortCode": "排序", "StopBits": "停止位", diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs index ba96ae615..46decf98e 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs @@ -110,7 +110,11 @@ internal sealed class ChannelService : BaseService, IChannelService var device = devices.Keys.ToList(); ManageHelper.CheckDeviceCount(device.Count); - + foreach (var item in device) + { + item.RedundantEnable = false; + item.RedundantDeviceId = null; + } await db.Insertable(device).ExecuteCommandAsync().ConfigureAwait(false); var variable = devices.SelectMany(a => a.Value).ToList(); diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs index 032d61d52..a40ae99ec 100644 --- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs +++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs @@ -53,7 +53,11 @@ internal sealed class DeviceService : BaseService, IDeviceService { var device = devices.Keys.ToList(); ManageHelper.CheckDeviceCount(device.Count); - + foreach (var item in device) + { + item.RedundantEnable = false; + item.RedundantDeviceId = null; + } await db.Insertable(device).ExecuteCommandAsync().ConfigureAwait(false); var variable = devices.SelectMany(a => a.Value).ToList(); @@ -263,6 +267,9 @@ internal sealed class DeviceService : BaseService, IDeviceService else ManageHelper.CheckDeviceCount(1); + if (input.RedundantEnable && GlobalData.IsRedundant(input.RedundantDeviceId ?? 0)) + throw Oops.Bah($"Redundancy configuration error, backup device has been planned into another redundancy group"); + if (await base.SaveAsync(input, type).ConfigureAwait(false)) { diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelEditComponent.razor b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelEditComponent.razor index e7bcf0d90..83b967781 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelEditComponent.razor +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelEditComponent.razor @@ -114,7 +114,7 @@ - + diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo1.razor b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo1.razor index 606fef720..d55a931ab 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo1.razor +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/GatewayMonitorPage/Channel/ChannelRuntimeInfo1.razor @@ -82,7 +82,7 @@ - + diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/RulesPage.razor.cs b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/RulesPage.razor.cs index c6e6d5740..776a84253 100644 --- a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/RulesPage.razor.cs +++ b/src/Gateway/ThingsGateway.Gateway.Razor/Pages/RulesEngine/RulesPage.razor.cs @@ -35,7 +35,8 @@ public partial class RulesPage : ThingsGatewayModuleComponentBase protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); - if (firstRender) { + if (firstRender) + { StateHasChanged(); } } diff --git a/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/ModbusBenchmark.cs b/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/ModbusBenchmark.cs index 1024f05be..4cce85228 100644 --- a/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/ModbusBenchmark.cs +++ b/src/Plugin/ThingsGateway.Foundation.Benchmark/Benchmark/ModbusBenchmark.cs @@ -57,10 +57,10 @@ public class ModbusBenchmark : IDisposable ModbusType = ModbusTypeEnum.ModbusTcp, }; thingsgatewaymodbus.InitChannel(clientChannel); - await clientChannel.SetupAsync(clientChannel.Config); + await clientChannel.SetupAsync(clientChannel.Config); clientChannel.Logger.LogLevel = LogLevel.Warning; - await thingsgatewaymodbus.ConnectAsync(CancellationToken.None); - await thingsgatewaymodbus.ReadAsync("40001", 100); + await thingsgatewaymodbus.ConnectAsync(CancellationToken.None); + await thingsgatewaymodbus.ReadAsync("40001", 100); thingsgatewaymodbuss.Add(thingsgatewaymodbus); } @@ -70,7 +70,7 @@ public class ModbusBenchmark : IDisposable var factory = new NModbus.ModbusFactory(); var nmodbus = factory.CreateMaster(new TcpClient("127.0.0.1", 502)); - await nmodbus.ReadHoldingRegistersAsync(1, 0, 100); + await nmodbus.ReadHoldingRegistersAsync(1, 0, 100); nmodbuss.Add(nmodbus); } //for (int i = 0; i < Program.ClientCount; i++) @@ -86,10 +86,10 @@ public class ModbusBenchmark : IDisposable for (int i = 0; i < Program.ClientCount; i++) { var client = new ModbusTcpMaster(); - await client.SetupAsync(new TouchSocketConfig() - .SetRemoteIPHost("127.0.0.1:502")); - await client.ConnectAsync(CancellationToken.None); - await client.ReadHoldingRegistersAsync(0, 100); + await client.SetupAsync(new TouchSocketConfig() + .SetRemoteIPHost("127.0.0.1:502")); + await client.ConnectAsync(CancellationToken.None); + await client.ReadHoldingRegistersAsync(0, 100); modbusTcpMasters.Add(client); } @@ -104,8 +104,8 @@ public class ModbusBenchmark : IDisposable for (int i = 0; i < Program.ClientCount; i++) { var client = factory.GetOrCreateTcpMaster(); - await client.ConnectAsync("127.0.0.1", 502); - await client.ReadHoldingRegistersAsync(0x01, 0x00, 10); + await client.ConnectAsync("127.0.0.1", 502); + await client.ReadHoldingRegistersAsync(0x01, 0x00, 10); _lgbModbusClients.Add(client); } diff --git a/src/Plugin/ThingsGateway.Foundation.Benchmark/Program.cs b/src/Plugin/ThingsGateway.Foundation.Benchmark/Program.cs index 7982a4808..909692d9c 100644 --- a/src/Plugin/ThingsGateway.Foundation.Benchmark/Program.cs +++ b/src/Plugin/ThingsGateway.Foundation.Benchmark/Program.cs @@ -49,12 +49,12 @@ namespace BenchmarkConsoleApp BenchmarkRunner.Run( ManualConfig.Create(DefaultConfig.Instance) .WithOptions(ConfigOptions.DisableOptimizationsValidator) -); +); - // BenchmarkRunner.Run( - // ManualConfig.Create(DefaultConfig.Instance) - // .WithOptions(ConfigOptions.DisableOptimizationsValidator) - //); + // BenchmarkRunner.Run( + // ManualConfig.Create(DefaultConfig.Instance) + // .WithOptions(ConfigOptions.DisableOptimizationsValidator) + //); // BenchmarkRunner.Run( //ManualConfig.Create(DefaultConfig.Instance) //.WithOptions(ConfigOptions.DisableOptimizationsValidator) diff --git a/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.cs b/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.cs index 9c5d644a6..7f9081a6c 100644 --- a/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.cs +++ b/src/Plugin/ThingsGateway.Plugin.DB/QuestDB/QuestDBProducer.cs @@ -14,7 +14,6 @@ using ThingsGateway.Common; using ThingsGateway.DB; using ThingsGateway.Debug; using ThingsGateway.Foundation; -using ThingsGateway.Gateway.Application; using ThingsGateway.NewLife; using ThingsGateway.NewLife.Extension; using ThingsGateway.NewLife.Threading; diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.cs index 603f13735..dbce904f7 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.cs @@ -11,7 +11,6 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; using MQTTnet.AspNetCore; diff --git a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.other.cs b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.other.cs index 76ba70ea0..dad8ea4cf 100644 --- a/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.other.cs +++ b/src/Plugin/ThingsGateway.Plugin.Mqtt/MqttServer/MqttServer.other.cs @@ -12,7 +12,6 @@ using CSScripting; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; using MQTTnet; using MQTTnet.Internal;