Пример #1
0
            public async Task Should_create_a_host_that_responds_to_requests()
            {
                using (var client = new HttpClient())
                {
                    var request = new Request {
                        Value = "Hello"
                    };
                    var envelope = new HttpMessageEnvelope(request, TypeMetadataCache <Request> .MessageTypeNames);
                    envelope.RequestId          = NewId.NextGuid().ToString();
                    envelope.DestinationAddress = HostAddress.ToString();
                    envelope.ResponseAddress    = new Uri("reply://localhost:8080/").ToString();

                    var messageBody = JsonConvert.SerializeObject(envelope, JsonMessageSerializer.SerializerSettings);

                    for (var i = 0; i < 5; i++)
                    {
                        var content = new StringContent(messageBody, Encoding.UTF8, "application/vnd.masstransit+json");

                        var timer = Stopwatch.StartNew();

                        string response;
                        using (var result = await client.PostAsync(HostAddress, content))
                        {
                            response = await result.Content.ReadAsStringAsync();
                        }

                        timer.Stop();

                        await Console.Out.WriteLineAsync($"Request complete: {timer.ElapsedMilliseconds}ms");
                    }
                }
            }
Пример #2
0
            public async Task Should_create_a_host_that_responds_to_requests()
            {
                _hostAddress = new Uri("http://localhost:8080");

                var busControl = Bus.Factory.CreateUsingHttp(cfg =>
                {
                    var mainHost = cfg.Host(_hostAddress, h =>
                    {
                        h.Method = HttpMethod.Post;
                    });

                    cfg.ReceiveEndpoint(mainHost, "", ep =>
                    {
                        ep.Consumer <HttpRequestConsumer>();
                    });
                });

                await busControl.StartAsync(TestCancellationToken);

                try
                {
                    using (var client = new HttpClient())
                    {
                        var request = new Request {
                            Value = "Hello"
                        };
                        var envelope = new HttpMessageEnvelope(request, TypeMetadataCache <Request> .MessageTypeNames);
                        envelope.RequestId          = NewId.NextGuid().ToString();
                        envelope.DestinationAddress = _hostAddress.ToString();
                        envelope.ResponseAddress    = new Uri("reply://localhost:8080/").ToString();

                        var messageBody = JsonConvert.SerializeObject(envelope, JsonMessageSerializer.SerializerSettings);

                        for (var i = 0; i < 5; i++)
                        {
                            var content = new StringContent(messageBody, Encoding.UTF8, "application/vnd.masstransit+json");

                            var timer = Stopwatch.StartNew();

                            string response;
                            using (var result = await client.PostAsync(_hostAddress, content))
                            {
                                response = await result.Content.ReadAsStringAsync();
                            }

                            timer.Stop();

                            await Console.Out.WriteLineAsync($"Request complete: {timer.ElapsedMilliseconds}ms");
                        }
                    }
                }
                finally
                {
                    await busControl.StopAsync().WithTimeout(TimeSpan.FromSeconds(30));
                }
            }
            public async Task Should_create_a_host_that_responds_to_requests()
            {
                using (var client = new HttpClient())
                {
                    var request = new Request {
                        Value = "Hello"
                    };
                    var envelope = new HttpMessageEnvelope(request, TypeMetadataCache <Request> .MessageTypeNames);
                    envelope.RequestId          = NewId.NextGuid().ToString();
                    envelope.DestinationAddress = HostAddress.ToString();
                    envelope.ResponseAddress    = new Uri("reply://localhost:8080/").ToString();

                    var messageBody = JsonConvert.SerializeObject(envelope, JsonMessageSerializer.SerializerSettings);

                    for (var i = 0; i < 5; i++)
                    {
                        //                        var content = new StringContent(messageBody, Encoding.UTF8, "application/vnd.masstransit+json");

                        var content = new ByteArrayContent(Encoding.UTF8.GetBytes(messageBody));
                        content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.masstransit+json");


                        var timer = Stopwatch.StartNew();

                        var message = new HttpRequestMessage(HttpMethod.Post, HostAddress);
                        message.Content = content;


                        message.Headers.Add(Clients.HttpHeaders.RequestId, envelope.RequestId);


                        string response;
                        using (var result = await client.SendAsync(message))
                        {
                            result.EnsureSuccessStatusCode();

                            response = await result.Content.ReadAsStringAsync();
                        }

                        timer.Stop();

                        await Console.Out.WriteLineAsync($"Request complete: {timer.ElapsedMilliseconds}ms");
                    }
                }
            }