Browse Source

Fix websocket sequential awaits

tarmst 2 months ago
parent
commit
c9a9e05bb4
1 changed files with 12 additions and 10 deletions
  1. 12 10
      backend/open_webui/socket/main.py

+ 12 - 10
backend/open_webui/socket/main.py

@@ -314,16 +314,18 @@ def get_event_emitter(request_info, update_db=True):
             )
         )
 
-        for session_id in session_ids:
-            await sio.emit(
-                "chat-events",
-                {
-                    "chat_id": request_info.get("chat_id", None),
-                    "message_id": request_info.get("message_id", None),
-                    "data": event_data,
-                },
-                to=session_id,
-            )
+        emit_tasks = [sio.emit(
+            "chat-events",
+            {
+                "chat_id": request_info.get("chat_id", None),
+                "message_id": request_info.get("message_id", None),
+                "data": event_data,
+            },
+            to=session_id,
+        )
+        for session_id in session_ids]
+
+        await asyncio.gather(*emit_tasks)
 
         if update_db:
             if "type" in event_data and event_data["type"] == "status":