Socket Server API

je_web_runner.utils.socket_server.web_runner_socket_server

Class: TCPServerHandler

class TCPServerHandler(socketserver.BaseRequestHandler):
    """
    Request handler for the WebRunner TCP server.

    Receives UTF-8 encoded JSON action strings (max 8192 bytes),
    executes them via execute_action(), and returns results.

    Special command: "quit_server" shuts down the server.

    Response protocol:
    - Each result is sent as UTF-8 followed by newline
    - Final message: "Return_Data_Over_JE\n"
    """

Class: TCPServer

class TCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
    """
    Multi-threaded TCP server.

    Attributes:
        close_flag (bool): Set to True when server receives shutdown command.
    """

Function: start_web_runner_socket_server

def start_web_runner_socket_server(host: str = "localhost", port: int = 9941) -> TCPServer:
    """
    Start the WebRunner TCP Socket Server in a background daemon thread.

    Host and port can be overridden via sys.argv:
    - 1 arg: host
    - 2 args: host, port

    :param host: server host (default: "localhost")
    :param port: server port (default: 9941)
    :return: TCPServer instance (already serving)
    """