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 секунд операций, не возвращаясь к опросу.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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