From ec120aeb194cf146892933bbca456fd24683579c Mon Sep 17 00:00:00 2001
From: root <295172551@qq.com>
Date: Fri, 25 Jul 2025 00:12:29 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96ProtocolWsClientManager?=
=?UTF-8?q?=EF=BC=9A=E7=AE=80=E5=8C=96=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=B8=93?=
=?UTF-8?q?=E6=B3=A8=E6=A0=B8=E5=BF=83=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 移除不必要的公共方法(AddAndStartClient、GetAllClients、GetClient等)
- 保留核心功能:StartAllClients和StopAllClients
- 将CreateProtocolWsClient改为私有方法
- 更新类注释,明确单一职责
- 保持线程安全和资源管理
---
.../CoreAgent.Infrastructure.csproj | 2 +
.../Network/NetworkProtocolLogObserver.cs | 27 +++
.../Network/ProtocolClientConfigFactory.cs | 59 +++++
.../Network/ProtocolWsClientManager.cs | 202 ++++++++++++++++++
.../IProtocolLogObserver.cs | 17 ++
...{LogManager.cs => ProtocolLogProcessor.cs} | 25 ++-
.../ProtocolWsClient.Connection.cs | 2 +-
.../ProtocolWsClient/ProtocolWsClient.Core.cs | 6 +-
.../ProtocolWsClient.Events.cs | 2 +-
.../ProtocolWsClient.Interface.cs | 6 +-
.../ProtocolWsClient.MessageDispatch.cs | 6 +-
CoreAgent.ProtocolClient/modify.md | 128 ++++++++++-
12 files changed, 464 insertions(+), 18 deletions(-)
create mode 100644 CoreAgent.Infrastructure/Services/Network/NetworkProtocolLogObserver.cs
create mode 100644 CoreAgent.Infrastructure/Services/Network/ProtocolClientConfigFactory.cs
create mode 100644 CoreAgent.Infrastructure/Services/Network/ProtocolWsClientManager.cs
create mode 100644 CoreAgent.ProtocolClient/ProtocolEngineCore/IProtocolLogObserver.cs
rename CoreAgent.ProtocolClient/ProtocolEngineCore/{LogManager.cs => ProtocolLogProcessor.cs} (87%)
diff --git a/CoreAgent.Infrastructure/CoreAgent.Infrastructure.csproj b/CoreAgent.Infrastructure/CoreAgent.Infrastructure.csproj
index 1b1ac1a..c736f9a 100644
--- a/CoreAgent.Infrastructure/CoreAgent.Infrastructure.csproj
+++ b/CoreAgent.Infrastructure/CoreAgent.Infrastructure.csproj
@@ -25,6 +25,8 @@
+
+
diff --git a/CoreAgent.Infrastructure/Services/Network/NetworkProtocolLogObserver.cs b/CoreAgent.Infrastructure/Services/Network/NetworkProtocolLogObserver.cs
new file mode 100644
index 0000000..2bb5c2b
--- /dev/null
+++ b/CoreAgent.Infrastructure/Services/Network/NetworkProtocolLogObserver.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using CoreAgent.ProtocolClient.Models;
+using CoreAgent.ProtocolClient.ProtocolEngineCore;
+using CoreAgent.WebSocketTransport.Interfaces;
+using Microsoft.Extensions.Logging;
+
+namespace CoreAgent.Infrastructure.Services.Network
+{
+ public class NetworkProtocolLogObserver : IProtocolLogObserver
+ {
+ private readonly ILogger _logger;
+ private readonly IMessageChannelManager _ChannelManager;
+ public NetworkProtocolLogObserver(ILogger logger, IMessageChannelManager channelManager)
+ {
+ this._logger = logger;
+ this._ChannelManager = channelManager;
+ }
+ public void OnProtocolLogsReceived(IEnumerable logDetails)
+ {
+ _ChannelManager.SendChannel.TryWrite(logDetails);
+ }
+ }
+}
diff --git a/CoreAgent.Infrastructure/Services/Network/ProtocolClientConfigFactory.cs b/CoreAgent.Infrastructure/Services/Network/ProtocolClientConfigFactory.cs
new file mode 100644
index 0000000..dcd8070
--- /dev/null
+++ b/CoreAgent.Infrastructure/Services/Network/ProtocolClientConfigFactory.cs
@@ -0,0 +1,59 @@
+using CoreAgent.ProtocolClient.Models;
+using Microsoft.Extensions.Logging;
+
+namespace CoreAgent.Infrastructure.Services.Network
+{
+ ///
+ /// 协议客户端配置工厂
+ /// 负责从其他实体组装ProtocolClientConfig
+ ///
+ public class ProtocolClientConfigFactory
+ {
+ private readonly ILogger _logger;
+ private readonly List _configs;
+
+ public ProtocolClientConfigFactory(ILogger logger)
+ {
+ _logger = logger ?? throw new ArgumentNullException(nameof(logger));
+ _configs = new List();
+ }
+
+ ///
+ /// 从多个实体创建协议客户端配置数组
+ ///
+ /// 实体列表
+ /// 协议客户端配置数组
+ public ProtocolClientConfig[] CreateFromEntities(IEnumerable