Update files

This commit is contained in:
glpshchn 2025-12-15 07:07:52 +03:00
parent 6d40f7a014
commit 0437b4d2fd
1 changed files with 15 additions and 3 deletions

View File

@ -40,7 +40,6 @@ def broadcast_online():
# Обработчик для корневого namespace (требуется для Socket.IO handshake) # Обработчик для корневого namespace (требуется для Socket.IO handshake)
# В python-socketio для корневого namespace нужно использовать @sio.on('connect') без namespace # В python-socketio для корневого namespace нужно использовать @sio.on('connect') без namespace
print("[WebSocket] Регистрация обработчика корневого namespace...")
@sio.on('connect') @sio.on('connect')
async def on_connect_root(sid, environ): 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)"""
@ -52,7 +51,6 @@ async def on_connect_root(sid, environ):
# Разрешаем подключение для handshake # Разрешаем подключение для handshake
# Возвращаем True, чтобы разрешить подключение # Возвращаем True, чтобы разрешить подключение
return True return True
print("[WebSocket] ✅ Обработчик корневого namespace зарегистрирован")
# Namespace handlers for /mod-chat # Namespace handlers for /mod-chat
@sio.on('connect', namespace='/mod-chat') @sio.on('connect', namespace='/mod-chat')
@ -172,9 +170,23 @@ async def on_message(sid, data):
def get_socketio_app(): def get_socketio_app():
"""Get Socket.IO ASGI app""" """Get Socket.IO ASGI app"""
print("[WebSocket] Инициализация Socket.IO ASGI app...")
try:
# Проверяем зарегистрированные namespaces
if hasattr(sio, 'namespace_handlers'):
print(f"[WebSocket] Зарегистрированные namespaces: {list(sio.namespace_handlers.keys())}")
elif hasattr(sio, 'handlers'):
print(f"[WebSocket] Зарегистрированные handlers: {list(sio.handlers.keys())}")
else:
print("[WebSocket] Не удалось определить зарегистрированные namespaces")
except Exception as e:
print(f"[WebSocket] Ошибка при проверке namespaces: {e}")
# Socket.IO ASGI app должен обернуть FastAPI app для правильной работы # Socket.IO ASGI app должен обернуть FastAPI app для правильной работы
# Но мы делаем это в main.py через SocketIOWrapper # Но мы делаем это в main.py через SocketIOWrapper
# Здесь просто возвращаем ASGI app для Socket.IO # Здесь просто возвращаем ASGI app для Socket.IO
# socketio_path указывает путь, по которому Socket.IO будет слушать # socketio_path указывает путь, по которому Socket.IO будет слушать
return socketio.ASGIApp(sio, socketio_path='/socket.io') app = socketio.ASGIApp(sio, socketio_path='/socket.io')
print("[WebSocket] ✅ Socket.IO ASGI app создан")
return app