Update files

This commit is contained in:
glpshchn 2025-12-15 07:03:58 +03:00
parent ce14cdbb4b
commit 6d40f7a014
2 changed files with 17 additions and 15 deletions

View File

@ -38,21 +38,21 @@ def broadcast_online():
sio.emit('online', online_list, namespace='/mod-chat') sio.emit('online', online_list, namespace='/mod-chat')
# Создаем класс для корневого namespace # Обработчик для корневого namespace (требуется для Socket.IO handshake)
class RootNamespace(socketio.AsyncNamespace): # В python-socketio для корневого namespace нужно использовать @sio.on('connect') без namespace
"""Root namespace handler for Socket.IO handshake""" print("[WebSocket] Регистрация обработчика корневого namespace...")
async def on_connect(self, sid, environ): @sio.on('connect')
"""Handle client connection to root namespace (Socket.IO handshake)""" async def on_connect_root(sid, environ):
print(f"[WebSocket] 🔄 Handshake to ROOT namespace: {sid}") """Handle client connection to root namespace (Socket.IO handshake)"""
print(f"[WebSocket] Environ type: {type(environ)}") print(f"[WebSocket] 🔄 Handshake to ROOT namespace: {sid}")
if environ: print(f"[WebSocket] Environ type: {type(environ)}")
print(f"[WebSocket] Environ keys: {list(environ.keys()) if isinstance(environ, dict) else 'N/A'}") if environ:
logger.info(f"[WebSocket] Handshake to ROOT namespace: {sid}") print(f"[WebSocket] Environ keys: {list(environ.keys()) if isinstance(environ, dict) else 'N/A'}")
# Разрешаем подключение для handshake logger.info(f"[WebSocket] Handshake to ROOT namespace: {sid}")
return True # Разрешаем подключение для handshake
# Возвращаем True, чтобы разрешить подключение
# Регистрируем корневой namespace return True
sio.register_namespace(RootNamespace('/')) 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')

View File

@ -659,7 +659,9 @@ export default function App() {
console.log('[Chat] Подключение к Socket.IO:', socketUrl); console.log('[Chat] Подключение к Socket.IO:', socketUrl);
console.log('[Chat] Использование namespace: /mod-chat'); console.log('[Chat] Использование namespace: /mod-chat');
// Подключаемся к корневому URL, но указываем namespace в опциях
const socket = io(socketUrl, { const socket = io(socketUrl, {
path: '/socket.io',
namespace: '/mod-chat', namespace: '/mod-chat',
transports: ['websocket', 'polling'], transports: ['websocket', 'polling'],
reconnection: true, reconnection: true,