37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Primitives;
|
|
using Nacos.V2;
|
|
using Nacos.V2.Naming;
|
|
using Nacos.V2.Naming.Dtos;
|
|
using Newtonsoft.Json;
|
|
using System.Threading;
|
|
using Yarp.ReverseProxy.Configuration;
|
|
using YuanXuan.IM.Api.Proxy;
|
|
|
|
namespace YuanXuan.IM.Api.CollectionExtensions
|
|
{
|
|
public static class YarpServiceCollectionExtensions
|
|
{
|
|
/// <summary>
|
|
/// 添加YARP反向代理服务
|
|
/// </summary>
|
|
/// <param name="services"></param>
|
|
/// <param name="configuration"></param>
|
|
/// <returns></returns>
|
|
public static IServiceCollection AddYarpWithNacos(this IServiceCollection services, IConfiguration configuration)
|
|
{
|
|
// 添加YARP服务
|
|
services.AddReverseProxy();
|
|
|
|
// 注册Nacos服务发现提供者
|
|
services.AddSingleton<NacosProxyConfigProvider>();
|
|
services.AddSingleton<IProxyConfigProvider>(provider => provider.GetRequiredService<NacosProxyConfigProvider>());
|
|
|
|
return services;
|
|
}
|
|
|
|
}
|
|
|
|
}
|