|
@@ -0,0 +1,59 @@
|
|
|
+using System;
|
|
|
+using System.Net.Sockets;
|
|
|
+using System.Text.Json;
|
|
|
+
|
|
|
+using NetCoreServer;
|
|
|
+
|
|
|
+namespace Benchmarks
|
|
|
+{
|
|
|
+
|
|
|
+ public class HttpBenchmarkSession : HttpSession
|
|
|
+ {
|
|
|
+
|
|
|
+ public HttpBenchmarkSession(HttpServer server) : base(server) { }
|
|
|
+
|
|
|
+ protected override void OnReceivedRequest(HttpRequest request)
|
|
|
+ {
|
|
|
+ if (request.Url.StartsWith("/plaintext"))
|
|
|
+ {
|
|
|
+ SendResponseAsync(MakeResponse("Hello, World!", "text/plain; charset=UTF-8"));
|
|
|
+ }
|
|
|
+ else if (request.Url.StartsWith("/json"))
|
|
|
+ {
|
|
|
+ var value = new JsonResult() { Message = "Hello, World!" };
|
|
|
+ var serialized = JsonSerializer.Serialize(value);
|
|
|
+
|
|
|
+ SendResponseAsync(MakeResponse(serialized, "application/json; charset=UTF-8"));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ SendResponseAsync(Response.MakeErrorResponse("Not found", 404));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ protected override void OnReceivedRequestError(HttpRequest request, string error)
|
|
|
+ {
|
|
|
+ Console.WriteLine($"Request error: {error}");
|
|
|
+ }
|
|
|
+
|
|
|
+ protected override void OnError(SocketError error)
|
|
|
+ {
|
|
|
+ Console.WriteLine($"HTTP session caught an error: {error}");
|
|
|
+ }
|
|
|
+
|
|
|
+ private static HttpResponse MakeResponse(string value, string contentType)
|
|
|
+ {
|
|
|
+ var response = new HttpResponse(200, "OK", "HTTP/1.1");
|
|
|
+
|
|
|
+ response.SetHeader("Server", "NetCoreServer");
|
|
|
+ response.SetHeader("Date", DateTime.UtcNow.ToString("r"));
|
|
|
+ response.SetHeader("Content-Type", contentType);
|
|
|
+
|
|
|
+ response.SetBody(value);
|
|
|
+
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|