diff --git a/moderation/backend-py/websocket_server.py b/moderation/backend-py/websocket_server.py index cd5ea43..f63cda8 100644 --- a/moderation/backend-py/websocket_server.py +++ b/moderation/backend-py/websocket_server.py @@ -40,7 +40,6 @@ def broadcast_online(): # Обработчик для корневого namespace (требуется для Socket.IO handshake) # В python-socketio для корневого namespace нужно использовать @sio.on('connect') без namespace -print("[WebSocket] Регистрация обработчика корневого namespace...") @sio.on('connect') async def on_connect_root(sid, environ): """Handle client connection to root namespace (Socket.IO handshake)""" @@ -52,7 +51,6 @@ async def on_connect_root(sid, environ): # Разрешаем подключение для handshake # Возвращаем True, чтобы разрешить подключение return True -print("[WebSocket] ✅ Обработчик корневого namespace зарегистрирован") # Namespace handlers for /mod-chat @sio.on('connect', namespace='/mod-chat') @@ -172,9 +170,23 @@ async def on_message(sid, data): def get_socketio_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 для правильной работы # Но мы делаем это в main.py через SocketIOWrapper # Здесь просто возвращаем ASGI app для 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