Pythonsocket.io частые отключения веб-сокетаPython

Программы на Python
Anonymous
Pythonsocket.io частые отключения веб-сокета

Сообщение Anonymous »

Я сталкиваюсь с постоянными отключениями WebSocket в рабочей среде Службы приложений Azure (контейнер Linux) во время длительных операций (60–120 секунд). Та же настройка отлично работает локально в Docker.
Архитектурный клиент → Шлюз приложений Azure (время ожидания ~ 230 с) → Nginx (Docker) → Gunicorn (UvicornWorker) → Django + Socket.IO AsyncServer → Redis
Ключевые версии:
python-socketio==5.15.1, python-engineio==4.12.3 Gunicorn 23.0.0 + uvicorn.workers.UvicornWorker Nginx 1.25 Служба приложений Azure + шлюз приложений
Проблема
WebSocket отключается каждые 30 секунд или несколько минут во время активного выполнения теста. Локальный Docker работает нормально; проблема возникает только в рабочей среде Azure. Переключение на длинный опрос HTTP решает проблему.
Что я пробовал
Увеличены таймауты в Application Gateway, Nginx и Gunicorn. Проверенные транспорты = ['websocket'] и ['websocket','polling'] → по-прежнему отключаются. Transports=['polling'] → работает надежно.
Вопрос Какая конфигурация Azure или Nginx может привести к разрыву соединений WebSocket, несмотря на настройки тайм-аута? Известно ли это ограничение для шлюза приложений Azure + WebSocket? Как обеспечить стабильность WebSocket в этой архитектуре?
Признаки: журналы сервера показывают, что Engine.IO abort=True отключены; в журналах клиентов отображается TRANSPORT_ERROR и попытки повторного подключения.
Цель: поддерживать стабильное соединение WebSocket в течение 60–120 секунд операций, не возвращаясь к опросу.

Вернуться в «Python»