Exemplo n.º 1
0
        public GrpcReportsTransport(IOptions <GrpcReportsTransportOptions> options, ILogger <GrpcReportsTransport> logger)
        {
            Options = options.Value ?? throw new ArgumentNullException();

            HttpClient httpClient = null;

            if (Options.NeedHttpClientFunc != null)
            {
                httpClient = Options.NeedHttpClientFunc();
            }
            else if (Options.AllowAnyRemoteCertificate)
            {
                var httpClientHandler = new HttpClientHandler
                {
                    ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
                };
                httpClient = new HttpClient(httpClientHandler);
            }
            var grpcChannelOptions = new GrpcChannelOptions {
                HttpClient = httpClient
            };

            if (Options.PostConfigGrpcChannelOptions != null)
            {
                Options.PostConfigGrpcChannelOptions(grpcChannelOptions);
            }

            var channel = GrpcChannel.ForAddress(Options.CollectorAddress, grpcChannelOptions);

            _client = new GrpcCollector.GrpcCollectorClient(channel);

            _RequestCollection = new AsyncCallbackDeferFlushCollection <RequestInfoWithDetail>(Push, 50, 5);
            _logger            = logger;
        }
Exemplo n.º 2
0
        public GrpcTransport(IOptions <GrpcTransportOptions> options, ILogger <GrpcTransport> logger)
        {
            _options = options.Value;
            _logger  = logger;

            var httpClientHandler = new HttpClientHandler();

            httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
            var httpClient = new HttpClient(httpClientHandler);

            GrpcChannelOptions grpcChannelOptions = new GrpcChannelOptions()
            {
                HttpClient = httpClient
            };

            _client = new GrpcCollector.GrpcCollectorClient(GrpcChannel.ForAddress(_options.CollectorAddress, grpcChannelOptions));

            _RequestBagCollection = new AsyncCallbackDeferFlushCollection <RequestBag>(Push, _options.DeferThreshold, _options.DeferSecond);
        }