77using System ;
88using System . Collections . Concurrent ;
99using System . Collections . Generic ;
10+ using Microsoft . Extensions . Logging ;
1011using NosCore . Networking . Encoding ;
1112using NosCore . Networking . Encoding . Filter ;
1213using NosCore . Networking . Filters ;
14+ using NosCore . Networking . Resource ;
1315using NosCore . Networking . SessionRef ;
1416using NosCore . Shared . Enumerations ;
17+ using NosCore . Shared . I18N ;
1518using SuperSocket . ProtoBase ;
1619using SuperSocket . Server . Abstractions . Session ;
1720
@@ -29,6 +32,8 @@ public class PipelineFactory : IPipelineFilterFactory<NosPackageInfo>
2932 private readonly Func < INetworkClient > _clientFactory ;
3033 private readonly Action < NosPackageInfo , INetworkClient > _packetHandler ;
3134 private readonly Action < INetworkClient > ? _disconnectHandler ;
35+ private readonly ILogger < PipelineFactory > ? _logger ;
36+ private readonly ILogLanguageLocalizer < LogLanguageKey > ? _logLanguage ;
3237
3338 private readonly ConcurrentDictionary < object , PipelineFilter > _filtersByConnection = new ( ) ;
3439 private readonly ConcurrentDictionary < string , INetworkClient > _clientsBySession = new ( ) ;
@@ -43,10 +48,13 @@ public class PipelineFactory : IPipelineFilterFactory<NosPackageInfo>
4348 /// <param name="clientFactory">Factory function to create network client instances.</param>
4449 /// <param name="packetHandler">Handler for processing received packets.</param>
4550 /// <param name="disconnectHandler">Handler for processing client disconnections.</param>
51+ /// <param name="logger">The logger instance.</param>
52+ /// <param name="logLanguage">The localized log language provider.</param>
4653 public PipelineFactory ( IDecoder decoder , ISessionRefHolder sessionRefHolder ,
4754 IEnumerable < IRequestFilter > requestFilters , IPipelineConfiguration pipelineConfiguration ,
4855 Func < INetworkClient > clientFactory , Action < NosPackageInfo , INetworkClient > packetHandler ,
49- Action < INetworkClient > ? disconnectHandler = null )
56+ Action < INetworkClient > ? disconnectHandler = null ,
57+ ILogger < PipelineFactory > ? logger = null , ILogLanguageLocalizer < LogLanguageKey > ? logLanguage = null )
5058 {
5159 _decoder = decoder ;
5260 _sessionRefHolder = sessionRefHolder ;
@@ -55,6 +63,8 @@ public PipelineFactory(IDecoder decoder, ISessionRefHolder sessionRefHolder,
5563 _clientFactory = clientFactory ;
5664 _packetHandler = packetHandler ;
5765 _disconnectHandler = disconnectHandler ;
66+ _logger = logger ;
67+ _logLanguage = logLanguage ;
5868 }
5969
6070 /// <summary>
@@ -115,6 +125,10 @@ public void HandlePackage(IAppSession session, NosPackageInfo package)
115125 {
116126 _packetHandler ( package , client ) ;
117127 }
128+ else if ( _logger != null && _logLanguage != null )
129+ {
130+ _logger . LogWarning ( _logLanguage [ LogLanguageKey . ERROR_SESSIONID ] , session . SessionID ) ;
131+ }
118132 }
119133 }
120134}
0 commit comments