Пример #1
0
        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);
        }