import socket import json import os import logging from http.server import HTTPServer, BaseHTTPRequestHandler from .dispatcher import dispatchRequest from .createresponse import buildResponse port = int(os.environ.get("SERVER_PORT", 19001)) from http.server import HTTPServer, BaseHTTPRequestHandler class RequestHandler(BaseHTTPRequestHandler): def do_POST(self): print("POST request received") self.send_response(200) self.send_header("Content-Type", "application/json") self.end_headers() self.wfile.write(b'{"status": "ok"}') def startServer(): server = HTTPServer(("127.0.0.1", port), RequestHandler) print(f"Server listening on port {port}") server.serve_forever() def startServer2(): server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(("0.0.0.0", port)) lifecycles = {} server.listen() print(f"Server listening on port {port}") while True: connection, address = server.accept() print("Accepting connections") connection.settimeout(30) try: while True: data = connection.recv(4096) if not data: print("Client Disconnected") break request = json.loads(data) thread, lifecycles, module, mode = dispatchRequest(request, lifecycles) response = buildResponse(module, thread, mode) connection.sendall( json.dumps(response).encode("utf-8"), ) except json.decoder.JSONDecodeError as error: print("Invalid JSON received", error) print("Closing client connection") except socket.timeout: print("Client connection timed out") finally: connection.close() # server.close()