public IServerBootstrapWrapper AddChannelHandler <TInitializeChannel>(X509Certificate2 tlsCertificate = null, Action <IChannelPipeline> pipelineAction = null, bool addTlsPipelineName = false) where TInitializeChannel : IChannel { Bootstrap.ChildHandler(new ActionChannelInitializer <TInitializeChannel>(channel => { var pipeline = channel.Pipeline; if (tlsCertificate.IsNotNull()) { var tlsHandler = TlsHandler.Server(tlsCertificate); if (addTlsPipelineName) { pipeline.AddLast("tls", tlsHandler); } else { pipeline.AddLast(tlsHandler); } var targetHost = tlsCertificate.GetNameInfo(X509NameType.DnsName, false); Logger.LogInformation($"Add TLS handler: {targetHost}"); } pipelineAction?.Invoke(pipeline); })); return(this); }