From deb7a85474d59d36b97c3506ecd045fdb4fa9fde Mon Sep 17 00:00:00 2001 From: data Date: Mon, 17 Mar 2025 21:05:11 +0100 Subject: [PATCH] Config und logging eingebaut --- app/cfg/settings.yaml | 5 +++++ app/class_settings.py | 27 +++++++++++++++++++++++++++ app/main_server.py | 24 ++++++++++++++++++------ 3 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 app/cfg/settings.yaml create mode 100644 app/class_settings.py diff --git a/app/cfg/settings.yaml b/app/cfg/settings.yaml new file mode 100644 index 0000000..3f2a751 --- /dev/null +++ b/app/cfg/settings.yaml @@ -0,0 +1,5 @@ +log_file: "server.log" +log_level: "DEBUG" +server_ip: "0.0.0.0" +server_port: 8000 +task_max: 1 \ No newline at end of file diff --git a/app/class_settings.py b/app/class_settings.py new file mode 100644 index 0000000..f4c9397 --- /dev/null +++ b/app/class_settings.py @@ -0,0 +1,27 @@ +import logging +import yaml + +class Settings: + def __init__(self): + self.yaml = None + self.read() + + def read(self): + with open("app/cfg/settings.yaml", "r", encoding="utf-8") as file: + self.yaml = yaml.safe_load(file) + + + def write(self): + with open("app/cfg/settings.yaml", "w", encoding="utf8") as file: + yaml.dump(self.yaml, file, default_flow_style=False, indent=4) + + def set_logging(self): + print(self.yaml) + logging.basicConfig( + level=self.yaml["log_level"], + format="%(asctime)s - %(levelname)s - %(message)s", + handlers=[ + logging.StreamHandler(), + logging.FileHandler(f"app/logs/{self.yaml['log_file']}") + ] + ) \ No newline at end of file diff --git a/app/main_server.py b/app/main_server.py index b75674b..15dd5f2 100644 --- a/app/main_server.py +++ b/app/main_server.py @@ -1,10 +1,15 @@ import websockets import asyncio +import json + +from app.class_settings import Settings class Server: def __init__(self): - self.ip = "0.0.0.0" - self.port = 8000 + obj_settings = Settings() + obj_settings.set_logging() + + self.yaml = obj_settings.yaml try: asyncio.run(self.start()) @@ -18,13 +23,20 @@ class Server: async for message in websocket: print(f"Server hat Empfangen: {message}") - response = f"Server antwortet: {message.upper()}" - await websocket.send(response) + data = json.loads(message) + + if data.get("data_path"): + pass + elif data.get("data_command"): + pass + + #response = f"Server antwortet: {message.upper()}" + #await websocket.send(response) except websockets.exceptions.ConnectionClosed: print("Server sagt: Client getrennt") async def start(self): - server = await websockets.serve(self.handle_client, self.ip, self.port) - print(f"Websocket Server läuft auf IP: {self.ip} Port: {self.port}") + server = await websockets.serve(self.handle_client, self.yaml['server_ip'], self.yaml['server_port']) + print(f"Websocket Server läuft auf IP: {self.yaml['server_ip']} Port: {self.yaml['server_port']}") await server.wait_closed() \ No newline at end of file