mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-12 04:15:25 +00:00
Add additional config elements to control how engineio and redis log and interact. (#19091)
This commit is contained in:
parent
7e03637446
commit
f89c170566
2 changed files with 42 additions and 2 deletions
|
|
@ -598,6 +598,19 @@ ENABLE_WEBSOCKET_SUPPORT = (
|
||||||
|
|
||||||
WEBSOCKET_MANAGER = os.environ.get("WEBSOCKET_MANAGER", "")
|
WEBSOCKET_MANAGER = os.environ.get("WEBSOCKET_MANAGER", "")
|
||||||
|
|
||||||
|
WEBSOCKET_REDIS_OPTIONS = os.environ.get("WEBSOCKET_REDIS_OPTIONS", "")
|
||||||
|
if WEBSOCKET_REDIS_OPTIONS == "":
|
||||||
|
log.debug("No WEBSOCKET_REDIS_OPTIONS provided, defaulting to None")
|
||||||
|
WEBSOCKET_REDIS_OPTIONS = None
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
WEBSOCKET_REDIS_OPTIONS = json.loads(
|
||||||
|
WEBSOCKET_REDIS_OPTIONS
|
||||||
|
)
|
||||||
|
except Exception:
|
||||||
|
log.warning("Invalid WEBSOCKET_REDIS_OPTIONS, defaulting to None")
|
||||||
|
WEBSOCKET_REDIS_OPTIONS = None
|
||||||
|
|
||||||
WEBSOCKET_REDIS_URL = os.environ.get("WEBSOCKET_REDIS_URL", REDIS_URL)
|
WEBSOCKET_REDIS_URL = os.environ.get("WEBSOCKET_REDIS_URL", REDIS_URL)
|
||||||
WEBSOCKET_REDIS_CLUSTER = (
|
WEBSOCKET_REDIS_CLUSTER = (
|
||||||
os.environ.get("WEBSOCKET_REDIS_CLUSTER", str(REDIS_CLUSTER)).lower() == "true"
|
os.environ.get("WEBSOCKET_REDIS_CLUSTER", str(REDIS_CLUSTER)).lower() == "true"
|
||||||
|
|
@ -612,6 +625,19 @@ except ValueError:
|
||||||
|
|
||||||
WEBSOCKET_SENTINEL_HOSTS = os.environ.get("WEBSOCKET_SENTINEL_HOSTS", "")
|
WEBSOCKET_SENTINEL_HOSTS = os.environ.get("WEBSOCKET_SENTINEL_HOSTS", "")
|
||||||
WEBSOCKET_SENTINEL_PORT = os.environ.get("WEBSOCKET_SENTINEL_PORT", "26379")
|
WEBSOCKET_SENTINEL_PORT = os.environ.get("WEBSOCKET_SENTINEL_PORT", "26379")
|
||||||
|
WEBSOCKET_SERVER_LOGGING = os.environ.get("WEBSOCKET_SERVER_LOGGING", "False").lower() == "true"
|
||||||
|
WEBSOCKET_SERVER_ENGINEIO_LOGGING = os.environ.get("WEBSOCKET_SERVER_LOGGING", "False").lower() == "true"
|
||||||
|
WEBSOCKET_SERVER_PING_TIMEOUT = os.environ.get("WEBSOCKET_SERVER_PING_TIMEOUT", "20")
|
||||||
|
try:
|
||||||
|
WEBSOCKET_SERVER_PING_TIMEOUT = int(WEBSOCKET_SERVER_PING_TIMEOUT)
|
||||||
|
except ValueError:
|
||||||
|
WEBSOCKET_SERVER_PING_TIMEOUT = 20
|
||||||
|
|
||||||
|
WEBSOCKET_SERVER_PING_INTERVAL = os.environ.get("WEBSOCKET_SERVER_PING_INTERVAL", "25")
|
||||||
|
try:
|
||||||
|
WEBSOCKET_SERVER_PING_INTERVAL = int(WEBSOCKET_SERVER_PING_INTERVAL)
|
||||||
|
except ValueError:
|
||||||
|
WEBSOCKET_SERVER_PING_INTERVAL = 25
|
||||||
|
|
||||||
|
|
||||||
AIOHTTP_CLIENT_TIMEOUT = os.environ.get("AIOHTTP_CLIENT_TIMEOUT", "")
|
AIOHTTP_CLIENT_TIMEOUT = os.environ.get("AIOHTTP_CLIENT_TIMEOUT", "")
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,11 @@ from open_webui.env import (
|
||||||
WEBSOCKET_SENTINEL_PORT,
|
WEBSOCKET_SENTINEL_PORT,
|
||||||
WEBSOCKET_SENTINEL_HOSTS,
|
WEBSOCKET_SENTINEL_HOSTS,
|
||||||
REDIS_KEY_PREFIX,
|
REDIS_KEY_PREFIX,
|
||||||
|
WEBSOCKET_REDIS_OPTIONS,
|
||||||
|
WEBSOCKET_SERVER_PING_TIMEOUT,
|
||||||
|
WEBSOCKET_SERVER_PING_INTERVAL,
|
||||||
|
WEBSOCKET_SERVER_LOGGING,
|
||||||
|
WEBSOCKET_SERVER_ENGINEIO_LOGGING,
|
||||||
)
|
)
|
||||||
from open_webui.utils.auth import decode_token
|
from open_webui.utils.auth import decode_token
|
||||||
from open_webui.socket.utils import RedisDict, RedisLock, YdocManager
|
from open_webui.socket.utils import RedisDict, RedisLock, YdocManager
|
||||||
|
|
@ -61,10 +66,11 @@ if WEBSOCKET_MANAGER == "redis":
|
||||||
mgr = socketio.AsyncRedisManager(
|
mgr = socketio.AsyncRedisManager(
|
||||||
get_sentinel_url_from_env(
|
get_sentinel_url_from_env(
|
||||||
WEBSOCKET_REDIS_URL, WEBSOCKET_SENTINEL_HOSTS, WEBSOCKET_SENTINEL_PORT
|
WEBSOCKET_REDIS_URL, WEBSOCKET_SENTINEL_HOSTS, WEBSOCKET_SENTINEL_PORT
|
||||||
)
|
),
|
||||||
|
redis_options=WEBSOCKET_REDIS_OPTIONS,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
mgr = socketio.AsyncRedisManager(WEBSOCKET_REDIS_URL)
|
mgr = socketio.AsyncRedisManager(WEBSOCKET_REDIS_URL, redis_options=WEBSOCKET_REDIS_OPTIONS)
|
||||||
sio = socketio.AsyncServer(
|
sio = socketio.AsyncServer(
|
||||||
cors_allowed_origins=SOCKETIO_CORS_ORIGINS,
|
cors_allowed_origins=SOCKETIO_CORS_ORIGINS,
|
||||||
async_mode="asgi",
|
async_mode="asgi",
|
||||||
|
|
@ -72,6 +78,10 @@ if WEBSOCKET_MANAGER == "redis":
|
||||||
allow_upgrades=ENABLE_WEBSOCKET_SUPPORT,
|
allow_upgrades=ENABLE_WEBSOCKET_SUPPORT,
|
||||||
always_connect=True,
|
always_connect=True,
|
||||||
client_manager=mgr,
|
client_manager=mgr,
|
||||||
|
logger=WEBSOCKET_SERVER_LOGGING,
|
||||||
|
ping_interval=WEBSOCKET_SERVER_PING_INTERVAL,
|
||||||
|
ping_timeout=WEBSOCKET_SERVER_PING_TIMEOUT,
|
||||||
|
engineio_logger=WEBSOCKET_SERVER_ENGINEIO_LOGGING,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
sio = socketio.AsyncServer(
|
sio = socketio.AsyncServer(
|
||||||
|
|
@ -80,6 +90,10 @@ else:
|
||||||
transports=(["websocket"] if ENABLE_WEBSOCKET_SUPPORT else ["polling"]),
|
transports=(["websocket"] if ENABLE_WEBSOCKET_SUPPORT else ["polling"]),
|
||||||
allow_upgrades=ENABLE_WEBSOCKET_SUPPORT,
|
allow_upgrades=ENABLE_WEBSOCKET_SUPPORT,
|
||||||
always_connect=True,
|
always_connect=True,
|
||||||
|
logger=WEBSOCKET_SERVER_LOGGING,
|
||||||
|
ping_interval=WEBSOCKET_SERVER_PING_INTERVAL,
|
||||||
|
ping_timeout=WEBSOCKET_SERVER_PING_TIMEOUT,
|
||||||
|
engineio_logger=WEBSOCKET_SERVER_ENGINEIO_LOGGING,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue