Update files
This commit is contained in:
parent
0d6d8e0ff7
commit
b496757cd5
|
|
@ -30,6 +30,14 @@ async def lifespan(app: FastAPI):
|
|||
if settings.MINIO_ENABLED:
|
||||
init_minio()
|
||||
|
||||
# Log Socket.IO status
|
||||
if socketio_app:
|
||||
print("✅ WebSocket (Socket.IO) доступен")
|
||||
print(" 📡 Namespace /mod-chat доступен для чата модераторов")
|
||||
print(" 🔌 WebSocket endpoint: /socket.io")
|
||||
else:
|
||||
print("⚠️ WebSocket (Socket.IO) недоступен - чат модераторов не будет работать")
|
||||
|
||||
print("=" * 60 + "\n")
|
||||
|
||||
yield
|
||||
|
|
@ -79,19 +87,40 @@ async def root():
|
|||
app.include_router(mod_app_router, prefix="/api/mod-app", tags=["moderation"])
|
||||
app.include_router(moderation_auth_router, prefix="/api/moderation-auth", tags=["auth"])
|
||||
|
||||
# Socket.IO будет обернут в uvicorn.run() для правильной работы
|
||||
# Здесь просто инициализируем для проверки
|
||||
# Socket.IO будет обернут для правильной работы
|
||||
# Создаем обернутое приложение для Socket.IO
|
||||
# Socket.IO обрабатывает пути /socket.io, остальное идет в FastAPI
|
||||
socketio_app = None
|
||||
try:
|
||||
socketio_app = get_socketio_app()
|
||||
print("✅ WebSocket (Socket.IO) инициализирован")
|
||||
print(" 📡 Namespace /mod-chat доступен для чата модераторов")
|
||||
print(" 🔌 WebSocket endpoint: /socket.io")
|
||||
print(" 💡 Подключение: wss://your-domain/socket.io с namespace='/mod-chat'")
|
||||
except Exception as e:
|
||||
print(f"⚠️ Ошибка инициализации WebSocket: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
print(" Чат модераторов будет недоступен")
|
||||
# Ошибка инициализации Socket.IO - используем только FastAPI
|
||||
socketio_app = None
|
||||
|
||||
# Создаем обернутое приложение для Socket.IO
|
||||
# Socket.IO обрабатывает пути /socket.io, остальное идет в FastAPI
|
||||
class SocketIOWrapper:
|
||||
"""Wrapper to combine FastAPI and Socket.IO ASGI apps"""
|
||||
def __init__(self, fastapi_app, socketio_app):
|
||||
self.fastapi_app = fastapi_app
|
||||
self.socketio_app = socketio_app
|
||||
|
||||
async def __call__(self, scope, receive, send):
|
||||
path = scope.get("path", "")
|
||||
# Если путь начинается с /socket.io, используем Socket.IO
|
||||
if path.startswith("/socket.io"):
|
||||
await self.socketio_app(scope, receive, send)
|
||||
else:
|
||||
# Иначе используем FastAPI
|
||||
await self.fastapi_app(scope, receive, send)
|
||||
|
||||
# Создаем обернутое приложение (доступно для uvicorn)
|
||||
# Это должно быть на уровне модуля, чтобы uvicorn мог импортировать
|
||||
if socketio_app:
|
||||
wrapped_app = SocketIOWrapper(app, socketio_app)
|
||||
else:
|
||||
# Если Socket.IO не инициализирован, используем только FastAPI
|
||||
wrapped_app = app
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("\n" + "=" * 60)
|
||||
|
|
|
|||
Loading…
Reference in New Issue