Update files
This commit is contained in:
parent
9a582f3a00
commit
469bf0fa35
|
|
@ -38,15 +38,19 @@ def broadcast_online():
|
||||||
sio.emit('online', online_list, namespace='/mod-chat')
|
sio.emit('online', online_list, namespace='/mod-chat')
|
||||||
|
|
||||||
|
|
||||||
# Обработчик для корневого namespace
|
# Обработчик для корневого namespace (требуется для Socket.IO handshake)
|
||||||
# Socket.IO сначала подключается к корневому namespace для handshake,
|
# Socket.IO сначала подключается к корневому namespace для handshake,
|
||||||
# затем клиент может подключиться к нужному namespace
|
# затем клиент подключается к указанному namespace
|
||||||
@sio.on('connect', namespace='/')
|
@sio.on('connect', namespace='/')
|
||||||
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)"""
|
||||||
print(f"[WebSocket] 🔄 Client connected to ROOT namespace (handshake): {sid}")
|
print(f"[WebSocket] 🔄 Handshake to ROOT namespace: {sid}")
|
||||||
logger.info(f"[WebSocket] Client connected to ROOT namespace (handshake): {sid}")
|
print(f"[WebSocket] Environ type: {type(environ)}")
|
||||||
# Разрешаем подключение - клиент потом подключится к /mod-chat
|
if environ:
|
||||||
|
print(f"[WebSocket] Environ keys: {list(environ.keys()) if isinstance(environ, dict) else 'N/A'}")
|
||||||
|
logger.info(f"[WebSocket] Handshake to ROOT namespace: {sid}")
|
||||||
|
# Разрешаем подключение для handshake
|
||||||
|
# Возвращаем True, чтобы разрешить подключение
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# Namespace handlers for /mod-chat
|
# Namespace handlers for /mod-chat
|
||||||
|
|
@ -170,5 +174,6 @@ def get_socketio_app():
|
||||||
# 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 будет слушать
|
||||||
return socketio.ASGIApp(sio, socketio_path='/socket.io')
|
return socketio.ASGIApp(sio, socketio_path='/socket.io')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -665,7 +665,8 @@ export default function App() {
|
||||||
reconnection: true,
|
reconnection: true,
|
||||||
reconnectionDelay: 1000,
|
reconnectionDelay: 1000,
|
||||||
reconnectionAttempts: 5,
|
reconnectionAttempts: 5,
|
||||||
timeout: 10000
|
timeout: 10000,
|
||||||
|
forceNew: false
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on('connect', () => {
|
socket.on('connect', () => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue