From a94a15230f30e77c050c22f548ba81e7b83c92e9 Mon Sep 17 00:00:00 2001 From: FReenen Date: Sat, 10 Aug 2024 14:30:28 +0200 Subject: [PATCH] gs: allow multiple line in one packet --- ground-station.py | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/ground-station.py b/ground-station.py index 04c3f1c..058a149 100644 --- a/ground-station.py +++ b/ground-station.py @@ -148,24 +148,31 @@ async def new_boat(boatId, name, ws): async def run(ws, path): """hadeler for every new websocket connection""" + print("new websocket connection: " + path) client = None - async for message in ws: - message = message.split(';') - if len(message) == 3 and message[1] == "4675": - client = await new_client(message[0], ws) - if client is not None: - async for message in ws: - if client['state'] == 'active': - await on_message(message, client) - else: - break - break - elif (len(message) == 3 and message[1] == "3440"): - client = await new_boat(message[0], message[2], ws) - if client is not None: - async for message in ws: - print("boat" + client['id'] + " says '" + message + "'") - break + async for msg in ws: + for message in msg.split("\n"): + if len(message) == 0: + continue + message = message.split(';') + if len(message) == 3 and message[1] == "4675": + client = await new_client(message[0], ws) + if client is not None: + async for msg in ws: + for message in msg.split("\n"): + if len(message) == 0: + continue + if client['state'] == 'active': + await on_message(message, client) + else: + break + break + elif (len(message) == 3 and message[1] == "3440"): + client = await new_boat(message[0], message[2], ws) + if client is not None: + async for message in ws: + print("boat" + client['id'] + " says '" + message + "'") + break async def main(): """main"""