Config und logging eingebaut
This commit is contained in:
parent
b6965971ac
commit
deb7a85474
3 changed files with 50 additions and 6 deletions
5
app/cfg/settings.yaml
Normal file
5
app/cfg/settings.yaml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
log_file: "server.log"
|
||||||
|
log_level: "DEBUG"
|
||||||
|
server_ip: "0.0.0.0"
|
||||||
|
server_port: 8000
|
||||||
|
task_max: 1
|
||||||
27
app/class_settings.py
Normal file
27
app/class_settings.py
Normal file
|
|
@ -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']}")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
import websockets
|
import websockets
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import json
|
||||||
|
|
||||||
|
from app.class_settings import Settings
|
||||||
|
|
||||||
class Server:
|
class Server:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.ip = "0.0.0.0"
|
obj_settings = Settings()
|
||||||
self.port = 8000
|
obj_settings.set_logging()
|
||||||
|
|
||||||
|
self.yaml = obj_settings.yaml
|
||||||
|
|
||||||
try:
|
try:
|
||||||
asyncio.run(self.start())
|
asyncio.run(self.start())
|
||||||
|
|
@ -18,13 +23,20 @@ class Server:
|
||||||
async for message in websocket:
|
async for message in websocket:
|
||||||
print(f"Server hat Empfangen: {message}")
|
print(f"Server hat Empfangen: {message}")
|
||||||
|
|
||||||
response = f"Server antwortet: {message.upper()}"
|
data = json.loads(message)
|
||||||
await websocket.send(response)
|
|
||||||
|
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:
|
except websockets.exceptions.ConnectionClosed:
|
||||||
print("Server sagt: Client getrennt")
|
print("Server sagt: Client getrennt")
|
||||||
|
|
||||||
async def start(self):
|
async def start(self):
|
||||||
server = await websockets.serve(self.handle_client, self.ip, 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.ip} Port: {self.port}")
|
print(f"Websocket Server läuft auf IP: {self.yaml['server_ip']} Port: {self.yaml['server_port']}")
|
||||||
await server.wait_closed()
|
await server.wait_closed()
|
||||||
Loading…
Reference in a new issue