Beispiel #1
0
        public virtual HttpMessageHandler CreateHttpHandler(TimeSpan?connectTimeout)
        {
            var handler = new TCPHttpMessageHandler(new ClientOptions()
            {
                IncludeHeaders = false
            });

            if (connectTimeout != null)
            {
                handler.Options.ConnectTimeout = connectTimeout.Value;
            }

            return(handler);
        }
Beispiel #2
0
        public virtual HttpMessageHandler CreateHttpHandler(TumblerProtocolType tumblerProtocol, TimeSpan?connectTimeout)
        {
            if (tumblerProtocol == TumblerProtocolType.Http)
            {
                return(new HttpClientHandler());
            }
            else if (tumblerProtocol == TumblerProtocolType.Tcp)
            {
                var handler = new TCPHttpMessageHandler(new ClientOptions()
                {
                    IncludeHeaders = false
                });

                if (connectTimeout != null)
                {
                    handler.Options.ConnectTimeout = connectTimeout.Value;
                }

                return(handler);
            }

            throw new NotImplementedException($"Tumbler Protocol type {tumblerProtocol} is not implemented.");
        }
Beispiel #3
0
 public void CanEvictConnections()
 {
     using (var host = CreateHost(new ServerOptions(serverBind)
     {
         MaxConnections = 1
     }))
     {
         var client1Handler = new TCPHttpMessageHandler(new ClientOptions()
         {
             AutoReconnect = false
         });
         using (var client1 = new HttpClient(client1Handler))
         {
             var nico = client1.GetAsync("http://127.0.0.1:29472/v1/hello/nico").Result.Content.ReadAsStringAsync().Result;
             using (var client2 = new HttpClient(new TCPHttpMessageHandler()))
             {
                 nico = client2.GetAsync("http://127.0.0.1:29472/v1/hello/nico").Result.Content.ReadAsStringAsync().Result;
                 Assert.Throws <IOException>(() => client1.GetAsync("http://127.0.0.1:29472/v1/hello/nico").GetAwaiter().GetResult());
                 client1Handler.Options.AutoReconnect = true;
                 client1.GetAsync("http://127.0.0.1:29472/v1/hello/nico").GetAwaiter().GetResult();
             }
         }
     }
 }