private async ValueTask <bool> InitializeSession(IAppSession session, IChannel channel) { session.Initialize(this, channel); if (channel is IPipeChannel pipeChannel) { pipeChannel.PipelineFilter.Context = CreatePipelineContext(session); } var middlewares = _middlewares; if (middlewares != null && middlewares.Length > 0) { for (var i = 0; i < middlewares.Length; i++) { var middleware = middlewares[i]; if (!await middleware.RegisterSession(session)) { _logger.LogWarning($"A session from {session.RemoteEndPoint} was rejected by the middleware {middleware.GetType().Name}."); return(false); } } } return(true); }
private void InitializeSession(IAppSession session, IChannel channel) { session.Initialize(this, channel); var middlewares = _middlewares; if (middlewares != null && middlewares.Length > 0) { for (var i = 0; i < middlewares.Length; i++) { middlewares[i].Register(this, session); } } var packageHandler = _packageHandler; if (packageHandler != null) { if (session.Channel is IChannel <TReceivePackageInfo> packegedChannel) { packegedChannel.PackageReceived += async(ch, p) => { try { await packageHandler(session, p); } catch (Exception e) { OnSessionError(session, e); } }; } } }
private async ValueTask <bool> InitializeSession(IAppSession session, IChannel channel) { session.Initialize(this, channel); if (channel is IPipeChannel pipeChannel) { pipeChannel.PipelineFilter.Context = CreatePipelineContext(session); } var middlewares = _middlewares; if (middlewares != null && middlewares.Length > 0) { for (var i = 0; i < middlewares.Length; i++) { var result = await middlewares[i].HandleSession(session); if (!result) { return(false); } } } return(true); }
private void InitializeSession(IAppSession session, IChannel channel) { session.Initialize(this, channel); var middlewares = _middlewares; if (middlewares != null && middlewares.Length > 0) { for (var i = 0; i < middlewares.Length; i++) { middlewares[i].Register(this, session); } } }
private void InitializeSession(IAppSession session, IChannel channel) { session.Initialize(this, channel); if (channel is IPipeChannel pipeChannel) { pipeChannel.PipelineFilter.Context = CreatePipelineContext(session); } var middlewares = _middlewares; if (middlewares != null && middlewares.Length > 0) { for (var i = 0; i < middlewares.Length; i++) { middlewares[i].Register(this, session); } } }