@ -2,17 +2,16 @@ using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection ;
using Microsoft.Extensions.Logging ;
using Microsoft.Extensions.Options ;
using Microsoft.Extensions.Caching.Memory ;
using CoreAgent.WebSocketTransport.Interfaces ;
using CoreAgent.WebSocketTransport.Models ;
using CoreAgent.WebSocketTransport.Services ;
using CoreAgent.WebSocketTransport.Middleware ;
using Microsoft.Extensions.Caching.Memory ;
namespace CoreAgent.WebSocketTransport.Extensions ;
using CoreAgent.WebSocketTransport.Models ;
namespace CoreAgent.WebSocketTransport.Extensions
{
/// <summary>
/// WebSocket 传输服务注册扩展
/// 遵循依赖注入原则,注册所有组件
/// WebSocket 传输服务扩展
/// </summary>
public static class WebSocketTransportExtensions
{
@ -39,17 +38,15 @@ public static class WebSocketTransportExtensions
configuration . GetSection ( configSection ) . Bind ( options ) ;
} ) ;
// 注册默认中间件(在核心服务之前)
RegisterDefaultMiddleware ( services ) ;
// 注册核心服务
RegisterCoreServices ( services ) ;
// 注册默认中间件
RegisterDefaultMiddleware ( services ) ;
return services ;
}
/// <summary>
/// 添加 WebSocket 中间件
/// </summary>
@ -118,13 +115,8 @@ public static class WebSocketTransportExtensions
// 注册日志中间件
services . AddWebSocketMiddleware < LoggingMiddleware > ( ) ;
// 注册缓存中间件(可选)
services . AddScoped < IMessageMiddleware > ( provider = >
{
var cache = provider . GetRequiredService < IMemoryCache > ( ) ;
var logger = provider . GetRequiredService < ILogger < CacheMiddleware > > ( ) ;
var config = provider . GetRequiredService < IOptions < WebSocketConfig > > ( ) . Value ;
return new CacheMiddleware ( cache , logger , config ) ;
} ) ;
// 注册缓存中间件(使用正确的注册方式)
services . AddWebSocketMiddleware < CacheMiddleware > ( ) ;
}
}
}