Пример #1
0
        public static void DelayTransferEchoServer()
        {
            using (var echoServer = new EchoServer(new IPEndPoint(IPAddress.Loopback, 0)))
            {
                echoServer.Start();

                var listener = new FixedDelayListener(
                    SinkListener.Instance,
                    TimeSpan.FromSeconds(0.5)
                    );
                var connector = new SimpleConnector(echoServer.EndPoint, listener);

                using (var proxyServer = new ProxyServer(new IPEndPoint(IPAddress.Loopback, 0), connector))
                {
                    proxyServer.Start();

                    var block = Encoding.UTF8.GetBytes("Hello world!");

                    using (var echoClient = new EchoPingClient(proxyServer.EndPoint, block))
                    {
                        echoClient.Start();

                        var stopwatch = Stopwatch.StartNew();

                        echoClient.Ping();

                        Console.WriteLine(stopwatch.Elapsed);
                    }
                }
            }
        }
Пример #2
0
        public static void BandwidthThrottlingProxyEcho()
        {
            using (var echoServer = new EchoServer(new IPEndPoint(IPAddress.Loopback, 0)))
            {
                echoServer.Start();

                var listener = new ThrottlingListener(
                    SinkListener.Instance,
                    10 * 1024 /* 10 Kb/s */
                    );
                var connector = new SimpleConnector(echoServer.EndPoint, listener);

                using (var proxyServer = new ProxyServer(new IPEndPoint(IPAddress.Loopback, 0), connector))
                {
                    proxyServer.Start();

                    var block = Encoding.UTF8.GetBytes(new string('?', 1024));

                    var stopwatch = Stopwatch.StartNew();

                    using (var echoClient = new EchoPingClient(proxyServer.EndPoint, block))
                    {
                        echoClient.Start();

                        for (int i = 0; i < 100; i++)
                        {
                            echoClient.Ping();
                        }
                    }

                    Console.WriteLine(stopwatch.Elapsed);
                }
            }
        }
Пример #3
0
        //[TestMethod]
        public void TestLoad()
        {
            var solr = SimpleConnector <Product> .Create(@"http://localhost.:8983/solr/", "collection1");

            var results = solr.Query("*:*");
            //Assert.IsNotNull(results);
        }
Пример #4
0
        public void TestSave()
        {
            var solr = SimpleConnector <Product> .Create(@"http://localhost.:8983/solr/", "collection1");

            solr.Save(new Product {
                id = "100", title = new string[] { "abcd" }
            });
        }
Пример #5
0
        public static void Create(string host, Dictionary <string, string> requestParams, string method, DownloadListener listener)
        {
            SimpleConnector connector = new SimpleConnector();

            connector.SetServerName(host);
            connector.SetParams(requestParams);
            connector.OnRequestComplete += listener;
            if (method == SimpleConnector.METHOD_GET)
            {
                connector.SendGet();
            }
            else
            {
                connector.SendPost();
            }
        }
Пример #6
0
        public void GetAccessToken(string verifier)
        {
            string timestamp = DateHelpers.DateTimeToUnitTimeStamp(DateTime.UtcNow).ToString();

            SimpleConnector connector = new SimpleConnector();

            connector.SetServerName(Constants.Urls.TOKEN_ACCESS);
            connector.AddParam("oauth_token", this.OAuthToken);
            connector.AddParam("oauth_consumer_key", Settings.Key);
            connector.AddParam("oauth_nonce", Settings.Nounce);
            connector.AddParam("oauth_timestamp", timestamp);
            connector.AddParam("oauth_verifier", verifier);
            connector.AddParam("oauth_signature_method", Settings.SignatireMethod);
            connector.AddParam("oauth_signature", this.generateSignature(this.CurrentSignatureType, "POST", Constants.Urls.TOKEN_ACCESS, connector.GetParams(), Settings.SecretKey + "&" + this.OAuthTokenSecret));
            connector.OnRequestComplete += parseAccessToken;
            connector.OnRequestComplete += this.onRequestComplete;
            connector.SendPost();
        }
Пример #7
0
        public void GetRequestToken()
        {
            string timestamp = DateHelpers.DateTimeToUnitTimeStamp(DateTime.UtcNow).ToString();

            SimpleConnector connector = new SimpleConnector();

            connector.SetServerName(Constants.Urls.TOKEN_REQUEST);
            connector.AddParam("oauth_consumer_key", Settings.Key);
            connector.AddParam("oauth_nonce", Settings.Nounce);
            connector.AddParam("oauth_timestamp", timestamp);
            connector.AddParam("oauth_signature_method", Settings.SignatireMethod);
            connector.AddParam("oauth_signature", this.generateSignature(this.CurrentSignatureType, "POST", Constants.Urls.TOKEN_REQUEST, connector.GetParams(), Settings.SecretKey + "&"));

            connector.OnRequestComplete += this.parseResponse;
            connector.OnRequestComplete += this.onRequestComplete;

            connector.SendPost();
        }
Пример #8
0
        protected void Run(int port = 0)
        {
            var endpoint = GetServerEndpoint();

            IListener listener = Listener;

            if (ParseUtils.ParseSize(options.Bandwidth) is int bandwidth)
            {
                listener = new ThrottlingListener(listener, bandwidth);
            }

            IConnector connector = new SimpleConnector(endpoint, listener);

            if (options.Chaos)
            {
                var chaosConfiguration = new ChaosConfiguration
                {
                    Reject =
                    {
                        Percentage = 0.5
                    },
                    Abort =
                    {
                        Percentage      =                  1,
                        UpstreamBytes   = new Range <long>(0, 1024 * 1024 * 10),
                        DownstreamBytes = new Range <long>(0, 1024 * 1024 * 10)
                    }
                };
                var chaosConnector = new ChaosConnector(chaosConfiguration, connector);

                //chaosConnector.Rejected += (s, e) => Console.WriteLine("REJECTED");
                //chaosConnector.Aborted += (s, e) => Console.WriteLine($"ABORTED reason {e.Reason}, upstream {e.UpstreamTransferred}, downstream {e.DownstreamTransferred}");

                connector = chaosConnector;
            }

            proxy = new ProxyServer(new IPEndPoint(IPAddress.Loopback, port), connector);
            proxy.ExceptionOccured += (s, e) => Console.WriteLine($"EXCEPTION: {e.Exception.Message} ({e.Exception.GetType().FullName})");
            proxy.Start();

            Running(proxy.EndPoint);
        }
Пример #9
0
        public static void ProxyEcho()
        {
            using (var echoServer = new EchoServer(new IPEndPoint(IPAddress.Loopback, 0)))
            {
                echoServer.Start();

                var connector = new SimpleConnector(echoServer.EndPoint);

                using (var proxyServer = new ProxyServer(new IPEndPoint(IPAddress.Loopback, 0), connector))
                {
                    proxyServer.Start();

                    var block = Encoding.UTF8.GetBytes("Hello world!");

                    using (var echoClient = new EchoPingClient(proxyServer.EndPoint, block))
                    {
                        echoClient.Start();

                        echoClient.Ping();
                    }
                }
            }
        }