فهرست منبع

feat: add ENABLE_WEBSOCKET_SUPPORT to force socket.io to ignore websocket upgrades

Jun Siang Cheah 8 ماه پیش
والد
کامیت
827c419251
3فایلهای تغییر یافته به همراه8 افزوده شده و 11 حذف شده
  1. 4 5
      backend/open_webui/apps/socket/main.py
  2. 0 6
      backend/open_webui/config.py
  3. 4 0
      backend/open_webui/env.py

+ 4 - 5
backend/open_webui/apps/socket/main.py

@@ -2,16 +2,15 @@ import asyncio
 
 import socketio
 from open_webui.apps.webui.models.users import Users
-from open_webui.config import ENABLE_WEBSOCKET_SUPPORT
+from open_webui.env import ENABLE_WEBSOCKET_SUPPORT
 from open_webui.utils.utils import decode_token
 
 sio = socketio.AsyncServer(
     cors_allowed_origins=[],
     async_mode="asgi",
-    transports=(
-        ["polling", "websocket"] if ENABLE_WEBSOCKET_SUPPORT.value else ["polling"]
-    ),
-    allow_upgrades=ENABLE_WEBSOCKET_SUPPORT.value,
+    transports=(["polling", "websocket"] if ENABLE_WEBSOCKET_SUPPORT else ["polling"]),
+    allow_upgrades=ENABLE_WEBSOCKET_SUPPORT,
+    always_connect=True,
 )
 app = socketio.ASGIApp(sio, socketio_path="/ws/socket.io")
 

+ 0 - 6
backend/open_webui/config.py

@@ -810,12 +810,6 @@ ENABLE_MESSAGE_RATING = PersistentConfig(
     os.environ.get("ENABLE_MESSAGE_RATING", "True").lower() == "true",
 )
 
-ENABLE_WEBSOCKET_SUPPORT = PersistentConfig(
-    "ENABLE_WEBSOCKET_SUPPORT",
-    "ui.enable_websocket_support",
-    os.environ.get("ENABLE_WEBSOCKET_SUPPORT", "True").lower() == "true",
-)
-
 
 def validate_cors_origins(origins):
     for origin in origins:

+ 4 - 0
backend/open_webui/env.py

@@ -273,3 +273,7 @@ WEBUI_SESSION_COOKIE_SECURE = os.environ.get(
 
 if WEBUI_AUTH and WEBUI_SECRET_KEY == "":
     raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND)
+
+ENABLE_WEBSOCKET_SUPPORT = (
+    os.environ.get("ENABLE_WEBSOCKET_SUPPORT", "True").lower() == "true"
+)