# Constructor.cs (自动转换为Markdown) ```csharp // 以下内容为原始C#代码,含详细注释 // 文件原路径:Managers/WebSocketMgr/Constructor.cs using Microsoft.Extensions.Logging; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WebSocket4Net; namespace CoreAgent.ProtocolClient.Managers.WebSocketMgr { public partial class WebSocketMessageManager { #region 构造函数 /// /// 构造函数 - 对应LTEClientWebSocket构造函数中的WebSocket相关初始化 /// /// 初始化说明: /// 1. 创建MessageIdManager替代原始的_messageId和_logGetId字段 /// 2. 创建消息队列_messageFifo,保持与原始实现一致 /// 3. 不初始化WebSocket实例,在Connect方法中创建 /// 4. 移除_sentMessages和_receivedMessages的初始化 /// /// 对应关系: /// - 参数clientName:对应LTEClientWebSocket构造函数中的config.Name /// - 参数logger:对应LTEClientWebSocket构造函数中的logger参数 /// - _messageIdManager:替代原始的_messageId和_logGetId字段 /// - _messageFifo:对应原始的_messageFifo初始化 /// - _disposed:对应原始的_disposed初始化 /// - 日志记录:对应原始的构造函数日志记录 /// /// 重构改进: /// - 参数验证:增加了对clientName和logger的null检查 /// - 职责分离:专注于WebSocket相关初始化 /// - 功能增强:通过MessageIdManager提供更好的消息ID管理 /// - 移除冗余:移除了消息缓存相关的初始化 /// /// 客户端名称,对应LTEClientWebSocket._config.Name /// 日志记录器,对应LTEClientWebSocket._logger public WebSocketMessageManager(string clientName, ILogger logger) { _clientName = clientName ?? throw new ArgumentNullException(nameof(clientName)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); // 创建MessageIdManager,替代原始的_messageId和_logGetId字段 _messageIdManager = new MessageIdManager(clientName, logger); // 创建消息队列,使用BlockingCollection优化线程安全性和性能 _messageFifo = new BlockingCollection(); _logger.LogInformation($"[{_clientName}] 创建WebSocket消息管理器"); } #endregion } }