From f42a30780e9fb232a15a62d2b11ec00490a4a725 Mon Sep 17 00:00:00 2001 From: NF-coder Date: Tue, 9 Sep 2025 03:07:52 +0300 Subject: [PATCH 1/3] fix (java-fcgi): now browser understands that server reurned json, not plain text --- server/src/main/java/org/web1/utils/JsonBuilder.java | 6 ++++-- server/src/main/java/org/web1/utils/ResponseController.java | 5 ++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/server/src/main/java/org/web1/utils/JsonBuilder.java b/server/src/main/java/org/web1/utils/JsonBuilder.java index 44c805f..c87b3a2 100644 --- a/server/src/main/java/org/web1/utils/JsonBuilder.java +++ b/server/src/main/java/org/web1/utils/JsonBuilder.java @@ -11,11 +11,13 @@ public JsonBuilder add(String key, T value) { } public String build() { + if (data.isEmpty()) return "{}"; + StringBuilder jsonString = new StringBuilder("{\n"); for (String key : data.keySet()) - jsonString.append(String.format("\t%s: %s,\n", key, data.get(key))); + jsonString.append(String.format("\t\"%s\": %s,\n", key, data.get(key))); - return jsonString + "}"; + return jsonString.substring(0, jsonString.length() - 2) + "\n}"; } } diff --git a/server/src/main/java/org/web1/utils/ResponseController.java b/server/src/main/java/org/web1/utils/ResponseController.java index 00f314c..8032608 100644 --- a/server/src/main/java/org/web1/utils/ResponseController.java +++ b/server/src/main/java/org/web1/utils/ResponseController.java @@ -6,9 +6,8 @@ public class ResponseController { Connection: keep-alive Content-Type: application/json Content-Length: %d - \s - %s - \s"""; + + %s"""; public static String create(JsonBuilder jsonBuilder) { String response = jsonBuilder.build(); return String.format(BASE_RESPONSE, response.length(), response); From 5ffa11122264f938c9879eb5522cc4b0ea8d42a7 Mon Sep 17 00:00:00 2001 From: NF-coder Date: Tue, 9 Sep 2025 03:11:23 +0300 Subject: [PATCH 2/3] fix (java-fcgi): removed unused enum option It was with typo --- server/src/main/java/org/web1/checkers/utils/GraphQuarters.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/org/web1/checkers/utils/GraphQuarters.java b/server/src/main/java/org/web1/checkers/utils/GraphQuarters.java index b522194..9e7c49c 100644 --- a/server/src/main/java/org/web1/checkers/utils/GraphQuarters.java +++ b/server/src/main/java/org/web1/checkers/utils/GraphQuarters.java @@ -4,5 +4,5 @@ public enum GraphQuarters { FIRST_QUADRANT, SECOND_QUADRANT, THIRD_QUADRANT, - FORTH_QUADRANT, FOURTH_QUADRANT + FOURTH_QUADRANT } From aeb8dc19c4ccc18aa74cced9766b688db3e7b56e Mon Sep 17 00:00:00 2001 From: NF-coder Date: Tue, 9 Sep 2025 03:22:07 +0300 Subject: [PATCH 3/3] java-fcgi-timer: nanosecond timer added Now u can see how much time request handling took --- server/src/main/java/org/web1/Main.java | 6 +++++- server/src/main/java/org/web1/utils/Timer.java | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 server/src/main/java/org/web1/utils/Timer.java diff --git a/server/src/main/java/org/web1/Main.java b/server/src/main/java/org/web1/Main.java index d5488be..a5181cc 100644 --- a/server/src/main/java/org/web1/Main.java +++ b/server/src/main/java/org/web1/Main.java @@ -9,6 +9,7 @@ import org.web1.utils.JsonBuilder; import org.web1.utils.QueryStringToHashmap; import org.web1.utils.ResponseController; +import org.web1.utils.Timer; public class Main { private static final Function> parseQuery = new QueryStringToHashmap(); @@ -16,8 +17,11 @@ public class Main { public static void main(String[] args) { FCGIInterface fastCGI = new FCGIInterface(); + Timer timer = new Timer(); while (fastCGI.FCGIaccept() >= 0) { + timer.start(); + HashMap queryParams = parseQuery.apply( FCGIInterface.request.params.getProperty("QUERY_STRING") ); @@ -26,7 +30,7 @@ public static void main(String[] args) { String result = ResponseController.create( new JsonBuilder() .add("result", checkResult) - .add("elapsedTime", 100) + .add("elapsedTimeNs", timer.stop()) ); System.out.println(result); diff --git a/server/src/main/java/org/web1/utils/Timer.java b/server/src/main/java/org/web1/utils/Timer.java new file mode 100644 index 0000000..48adcff --- /dev/null +++ b/server/src/main/java/org/web1/utils/Timer.java @@ -0,0 +1,11 @@ +package org.web1.utils; + +public class Timer { + long startTime; + public void start() { + this.startTime = System.nanoTime(); + } + public long stop() { + return System.nanoTime() - this.startTime; + } +}