WS send game state

This commit is contained in:
Eden Kirin
2023-03-25 15:54:23 +01:00
parent 0f0fe68890
commit 4b511c0cb8
5 changed files with 41 additions and 18 deletions

View File

@ -6,7 +6,7 @@ from websockets import WebSocketServerProtocol, broadcast
from settings import settings
connected_clients = set()
connected_clients = set[WebSocketServerProtocol]()
def setup_logging() -> None:
@ -18,15 +18,18 @@ def setup_logging() -> None:
async def ws_handler(websocket: WebSocketServerProtocol):
connected_clients.add(websocket)
logging.info(f"Add client: {websocket}")
logging.info(f"Add client: {websocket.id}")
try:
async for message in websocket:
print(">>>>>>>>>>", message)
broadcast(connected_clients, message)
logging.debug(f"Received message: {message}")
broadcast_clients = [client for client in connected_clients if client.id != websocket.id]
if broadcast_clients:
logging.debug(f"Broadcast message to clients: {broadcast_clients}")
broadcast(connected_clients, message)
finally:
connected_clients.remove(websocket)
logging.info(f"Remove client: {websocket}")
logging.info(f"Remove client: {websocket.id}")
async def main():