Update files

This commit is contained in:
glpshchn 2025-12-15 07:01:23 +03:00
parent 15d87cf95d
commit ce14cdbb4b
1 changed files with 16 additions and 17 deletions

View File

@ -19,8 +19,7 @@ sio = socketio.AsyncServer(
logger=True, # Включить логирование для отладки logger=True, # Включить логирование для отладки
engineio_logger=True, # Включить логирование Engine.IO engineio_logger=True, # Включить логирование Engine.IO
ping_timeout=60, ping_timeout=60,
ping_interval=25, ping_interval=25
always_connect=True # Разрешить подключение к корневому namespace
) )
# Track connected moderators # Track connected moderators
@ -39,21 +38,21 @@ def broadcast_online():
sio.emit('online', online_list, namespace='/mod-chat') sio.emit('online', online_list, namespace='/mod-chat')
# Обработчик для корневого namespace (требуется для Socket.IO handshake) # Создаем класс для корневого namespace
# Socket.IO сначала подключается к корневому namespace для handshake, class RootNamespace(socketio.AsyncNamespace):
# затем клиент подключается к указанному namespace """Root namespace handler for Socket.IO handshake"""
# В python-socketio для корневого namespace можно не указывать namespace явно async def on_connect(self, sid, environ):
@sio.on('connect') """Handle client connection to root namespace (Socket.IO handshake)"""
async def on_connect_root(sid, environ): print(f"[WebSocket] 🔄 Handshake to ROOT namespace: {sid}")
"""Handle client connection to root namespace (Socket.IO handshake)""" print(f"[WebSocket] Environ type: {type(environ)}")
print(f"[WebSocket] 🔄 Handshake to ROOT namespace: {sid}") if environ:
print(f"[WebSocket] Environ type: {type(environ)}") print(f"[WebSocket] Environ keys: {list(environ.keys()) if isinstance(environ, dict) else 'N/A'}")
if environ: logger.info(f"[WebSocket] Handshake to ROOT namespace: {sid}")
print(f"[WebSocket] Environ keys: {list(environ.keys()) if isinstance(environ, dict) else 'N/A'}") # Разрешаем подключение для handshake
logger.info(f"[WebSocket] Handshake to ROOT namespace: {sid}") return True
# Разрешаем подключение для handshake
# Возвращаем True, чтобы разрешить подключение # Регистрируем корневой namespace
return True sio.register_namespace(RootNamespace('/'))
# Namespace handlers for /mod-chat # Namespace handlers for /mod-chat
@sio.on('connect', namespace='/mod-chat') @sio.on('connect', namespace='/mod-chat')