using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; namespace WIDESEAWCS_Tasks.SocketServer { /// /// Socket 服务器后台主机服务 /// /// /// 实现 IHostedService 接口,作为 ASP.NET Core 的后台服务运行。 /// 负责在应用启动时启动 Socket 服务器,停止时关闭服务器。 /// public class SocketServerHostedService : IHostedService { /// /// TCP Socket 服务器实例 /// private readonly TcpSocketServer _server; /// /// Socket 服务器配置选项 /// private readonly SocketServerOptions _options; /// /// 构造函数 /// /// TCP Socket 服务器实例 /// 配置选项 public SocketServerHostedService(TcpSocketServer server, IOptions options) { _server = server; _options = options.Value; } /// /// 启动 Socket 服务器 /// /// /// 如果配置中服务器被禁用(Enabled=false),则不启动。 /// /// 取消令牌 /// 启动任务 public Task StartAsync(CancellationToken cancellationToken) { // 检查服务器是否启用 if (!_options.Enabled) { return Task.CompletedTask; } // 启动服务器 return _server.StartAsync(cancellationToken); } /// /// 停止 Socket 服务器 /// /// 取消令牌 /// 停止任务 public Task StopAsync(CancellationToken cancellationToken) { return _server.StopAsync(cancellationToken); } } }