Skip to content

Instantly share code, notes, and snippets.

@Drawaes
Last active January 26, 2020 07:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Drawaes/699b42621f31d83f8bf68b1acdcf0185 to your computer and use it in GitHub Desktop.
Save Drawaes/699b42621f31d83f8bf68b1acdcf0185 to your computer and use it in GitHub Desktop.
private static async Task RunLoopClient(int loopCount)
{
var sw = System.Diagnostics.Stopwatch.StartNew();
var sc = new ServiceCollection();
var sp = sc.BuildServiceProvider();
var client = new ClientBuilder(sp).UseSockets().Build();
await using var connection = await client.ConnectAsync(new IPEndPoint(IPAddress.Loopback, 7777));
var httpProtocol = new HttpClientProtocol(connection);
for(var i = 0; i < loopCount;i++)
{
var response = await httpProtocol.SendAsync(new HttpRequestMessage(HttpMethod.Get, "/Test"));
await response.Content.CopyToAsync(Stream.Null);
}
sw.Stop();
Console.WriteLine($"Bedrock {loopCount} requests took {sw.ElapsedMilliseconds}ms or {(double)loopCount / sw.ElapsedMilliseconds * 1000} rps");
}
public class HttpApplication : ConnectionHandler
{
public override async Task OnConnectedAsync(ConnectionContext connection)
{
var httpProtocol = new HttpServerProtocol(connection);
while(true)
{
var request = await httpProtocol.ReadRequestAsync();
await request.Content.CopyToAsync(Stream.Null);
var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK)
{
Content = new StringContent("Hi"),
};
await httpProtocol.WriteResponseAsync(response);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment