|
@@ -0,0 +1,58 @@
|
|
|
+package com.example;
|
|
|
+
|
|
|
+import java.io.*;
|
|
|
+import java.net.Socket;
|
|
|
+import org.json.JSONObject;
|
|
|
+
|
|
|
+public class ClientHandler implements Runnable {
|
|
|
+ private final Socket socket;
|
|
|
+
|
|
|
+ public ClientHandler(Socket socket) {
|
|
|
+ this.socket = socket;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ try (
|
|
|
+ BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
|
|
+ PrintWriter out = new PrintWriter(socket.getOutputStream(), true)
|
|
|
+ ) {
|
|
|
+ String rawMessage;
|
|
|
+ while ((rawMessage = in.readLine()) != null) {
|
|
|
+ System.out.println("Received: " + rawMessage);
|
|
|
+
|
|
|
+ String response = handleEvent(rawMessage);
|
|
|
+ out.println(response);
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ System.err.println("Client handler error: " + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private String handleEvent(String rawMessage) {
|
|
|
+ try {
|
|
|
+ JSONObject json = new JSONObject(rawMessage);
|
|
|
+ String pattern = json.getString("pattern");
|
|
|
+ String data = json.optString("data", "");
|
|
|
+
|
|
|
+ return switch (pattern) {
|
|
|
+ case "eventTest" -> handleEventTest(data);
|
|
|
+ case "matchFingerprint" -> handleMatchFingerprint(data);
|
|
|
+ default -> "Unknown pattern: " + pattern;
|
|
|
+ };
|
|
|
+ } catch (Exception e) {
|
|
|
+ return "Invalid message format: " + e.getMessage();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private String handleEventTest(String message) {
|
|
|
+ System.out.println("Hello there. Just responding to EventPattern.");
|
|
|
+ System.out.println("Message: " + message);
|
|
|
+ return "eventTest acknowledged";
|
|
|
+ }
|
|
|
+
|
|
|
+ private String handleMatchFingerprint(String data) {
|
|
|
+ System.out.println("Received fingerprint match request (not implemented).");
|
|
|
+ return "matchFingerprint handler stub";
|
|
|
+ }
|
|
|
+}
|