Updated server to cancel the response task if a new request is submitted

This commit is contained in:
nolan 2025-09-30 22:49:43 -04:00
parent a3042432f2
commit 3d6ae21a7d

View File

@ -18,14 +18,19 @@ class WebSocketServer:
async def handleConnection(self, connection: ServerConnection) -> None: #TODO: Make this actually do something
print(f"{connection.remote_address} Connected")
connected: bool = True
task: asyncio.Task = None
while (connected):
raw: str = await connection.recv()
message = json.loads(raw)
print(f"Received: {message["message"]} width id {message["ID"]}")
time.sleep(random.randrange(1, 10) / 10)
response = {"ID": message["ID"], "message": f"received: {message["message"]}"}
await connection.send(json.dumps(response))
print("Server replied")
if task != None and task.cancel(): print("TASK CANCELED")
task = asyncio.create_task(self.respond(raw, connection))
async def respond(self, raw: str, connection: ServerConnection) -> None:
message = json.loads(raw)
print(f"Received: {message["message"]} width id {message["ID"]}")
await asyncio.sleep(random.randrange(1, 10) / 10)
response = {"ID": message["ID"], "message": f"received: {message["message"]}"}
await connection.send(json.dumps(response))
print("Server replied")
def serverController(self) -> None: #TODO: Make ways of actually controlling the server with this
print("Server controller. Now die")