diff --git a/backend/open_webui/apps/socket/main.py b/backend/open_webui/apps/socket/main.py index 777d877bf..d6f1a4999 100644 --- a/backend/open_webui/apps/socket/main.py +++ b/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") diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index ac34001d6..5ccb40d47 100644 --- a/backend/open_webui/config.py +++ b/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: diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index b716769c2..8683bb370 100644 --- a/backend/open_webui/env.py +++ b/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" +)