''' 服务端定时向客户端发送消息 ''' import asyncio import websockets from datetime import datetime # 存储所有连接的客户端 connected_clients = set() async def send_periodic_messages(interval=5): """定期向所有客户端发送消息""" while True: await asyncio.sleep(interval) if connected_clients: # message = "{'socketType':'7','number':'ROB23100098','groupingId':'0dc1ad7fdb394246981b8576465240ce','onlineStatus':'1','robotId':'6865c4ce61ee45a69e79f62eee55b83c'}" message = "{\"socketType\":\"7\",\"number\":\"ROB23100098\",\"groupingId\":\"0dc1ad7fdb394246981b8576465240ce\",\"onlineStatus\":\"1\",\"robotId\":\"6865c4ce61ee45a69e79f62eee55b83c\"}" # 6865c4ce61ee45a69e79f62eee55b83c # 向所有客户端广播消息 await asyncio.wait([client.send(message) for client in connected_clients]) async def handle_client(websocket, path): """处理客户端连接""" # 添加新客户端 connected_clients.add(websocket) try: # 保持连接开放 async for message in websocket: # 可选的:处理客户端发来的消息 print(f"Received: {message}") finally: # 客户端断开时移除 connected_clients.remove(websocket) async def main(): # 启动定时任务 asyncio.create_task(send_periodic_messages(interval=10)) # 启动WebSocket服务器 server = await websockets.serve( handle_client, "10.0.0.202", 8788 ) print("WebSocket server started on ws://10.0.0.202:8788") await server.wait_closed() if __name__ == "__main__": asyncio.run(main())