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,10 +38,11 @@ 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')
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] 🔄 Handshake to ROOT namespace: {sid}") print(f"[WebSocket] 🔄 Handshake to ROOT namespace: {sid}")
print(f"[WebSocket] Environ type: {type(environ)}") print(f"[WebSocket] Environ type: {type(environ)}")
@ -49,10 +50,9 @@ class RootNamespace(socketio.AsyncNamespace):
print(f"[WebSocket] Environ keys: {list(environ.keys()) if isinstance(environ, dict) else 'N/A'}") print(f"[WebSocket] Environ keys: {list(environ.keys()) if isinstance(environ, dict) else 'N/A'}")
logger.info(f"[WebSocket] Handshake to ROOT namespace: {sid}") logger.info(f"[WebSocket] Handshake to ROOT namespace: {sid}")
# Разрешаем подключение для handshake # Разрешаем подключение для handshake
# Возвращаем True, чтобы разрешить подключение
return True return True
print("[WebSocket] ✅ Обработчик корневого namespace зарегистрирован")
# Регистрируем корневой namespace
sio.register_namespace(RootNamespace('/'))
# 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,