Skip to content

Commit ee542d8

Browse files
committed
feat: 实现 #8
1 parent b238b8f commit ee542d8

7 files changed

Lines changed: 1163 additions & 7 deletions

File tree

Cyaim.WebSocketServer/Cyaim.WebSocketServer/Infrastructure/AccessControl/AccessControlExtensions.cs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,48 @@ public static IServiceCollection AddGeoLocationProvider<T>(this IServiceCollecti
6161
services.AddSingleton<IGeoLocationProvider, T>();
6262
return services;
6363
}
64+
65+
/// <summary>
66+
/// Add QPS priority policy service / 添加QPS优先级策略服务
67+
/// </summary>
68+
/// <param name="services">Service collection / 服务集合</param>
69+
/// <param name="configure">Configuration action / 配置操作</param>
70+
/// <returns>Service collection / 服务集合</returns>
71+
public static IServiceCollection AddQpsPriorityPolicy(
72+
this IServiceCollection services,
73+
Action<QpsPriorityPolicy> configure = null)
74+
{
75+
var policy = new QpsPriorityPolicy();
76+
configure?.Invoke(policy);
77+
78+
services.AddSingleton(policy);
79+
services.AddSingleton<PriorityListService>();
80+
services.AddSingleton<QpsPriorityManager>();
81+
82+
return services;
83+
}
84+
85+
/// <summary>
86+
/// Add QPS priority policy service from configuration / 从配置添加QPS优先级策略服务
87+
/// </summary>
88+
/// <param name="services">Service collection / 服务集合</param>
89+
/// <param name="configuration">Configuration / 配置</param>
90+
/// <param name="sectionName">Configuration section name (default: "QpsPriorityPolicy") / 配置节名称(默认:"QpsPriorityPolicy")</param>
91+
/// <returns>Service collection / 服务集合</returns>
92+
public static IServiceCollection AddQpsPriorityPolicy(
93+
this IServiceCollection services,
94+
IConfiguration configuration,
95+
string sectionName = "QpsPriorityPolicy")
96+
{
97+
var policy = new QpsPriorityPolicy();
98+
configuration.GetSection(sectionName).Bind(policy);
99+
100+
services.AddSingleton(policy);
101+
services.AddSingleton<PriorityListService>();
102+
services.AddSingleton<QpsPriorityManager>();
103+
104+
return services;
105+
}
64106
}
65107
}
66108

0 commit comments

Comments
 (0)