WS send game state
This commit is contained in:
13
ws_server.py
13
ws_server.py
@ -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():
|
||||
|
||||
Reference in New Issue
Block a user