LanYinInstaller.cs 1.16 KB
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Rcs.Application.Shared;
using Rcs.Cyaninetech.BackgroundServices;
using Rcs.Cyaninetech.Services;
using Rcs.Infrastructure.Shared;

namespace Rcs.Infrastructure.Installs;

/// <summary>
/// LanYin外挂服务安装器
/// </summary>
public static class LanYinInstaller
{
    /// <summary>
    /// 安装LanYin服务(包含后台任务下发服务)
    /// </summary>
    public static IServiceCollection InstallLanYinService(
        this IServiceCollection services)
    {
        // 注册LanYin服务(作为单例,因为被HostedService使用)
        services.AddSingleton<ILanYinService, LanYinService>();

        // 注册启动时自动登录服务
        services.AddHostedService<LanYinLoginHostedService>();

        // 注册蓝因 WebSocket 客户端服务 - 负责与蓝因系统的 WebSocket 通信
        services.AddSingleton<ILanYinWsClientService, LanYinWsClientService>();

        // 注册启动时初始化Websocket服务,自动连接并订阅消息
        services.AddHostedService<LanYinWsHostedService>();
        
        return services;
    }
}