MqttInstaller.cs
1.13 KB
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Rcs.Application.Shared;
using Rcs.Infrastructure.Mqtt;
using Rcs.Infrastructure.Mqtt.ParseFactory;
namespace Rcs.Infrastructure.Installs
{
public static class MqttInstaller
{
/// <summary>
/// 安装MQTT客户端服务
/// </summary>
public static void InstallMqtt(this WebApplicationBuilder builder)
{
// 注册MQTT消息处理器
builder.Services.AddSingleton<IMqttMessageHandler, MqttMessageHandler>();
// 注册消息解析工厂
builder.Services.AddSingleton<IStateParserFactory, StateParserFactory>();
builder.Services.AddSingleton<IVisualizationParserFactory, VisualizationParserFactory>();
// 注册MQTT客户端服务(作为后台服务运行)
builder.Services.AddSingleton<IMqttClientService, MqttClientService>();
builder.Services.AddHostedService<MqttClientService>(provider =>
(MqttClientService)provider.GetRequiredService<IMqttClientService>());
}
}
}