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,12 +38,10 @@ 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')
async def on_connect_root(sid, environ):
"""Handle client connection to root namespace (Socket.IO handshake)""" """Handle client connection to root namespace (Socket.IO handshake)"""
print(f"[WebSocket] 🔄 Handshake to ROOT namespace: {sid}") print(f"[WebSocket] 🔄 Handshake to ROOT namespace: {sid}")
print(f"[WebSocket] Environ type: {type(environ)}") print(f"[WebSocket] Environ type: {type(environ)}")
@ -52,9 +49,11 @@ async def on_connect_root(sid, environ):
print(f"[WebSocket] Environ keys: {list(environ.keys()) if isinstance(environ, dict) else 'N/A'}") print(f"[WebSocket] Environ keys: {list(environ.keys()) if isinstance(environ, dict) else 'N/A'}")
logger.info(f"[WebSocket] Handshake to ROOT namespace: {sid}") logger.info(f"[WebSocket] Handshake to ROOT namespace: {sid}")
# Разрешаем подключение для handshake # Разрешаем подключение для handshake
# Возвращаем True, чтобы разрешить подключение
return True return True
# Регистрируем корневой namespace
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')
async def on_connect(sid, environ): async def on_connect(sid, environ):