Доброй ночи, ребята! Нужна Ваша помощь в решении проблемы с flask_socketio. Был бы очень благодарен!
Написал приложение, все ок, общение с фронтом происходит через вебсокет.
Принимаю сообщения через декоратор socketio.on('event') в главном потоке.
Отправляю уже в другом потоке с бизнес логикой программы:
socketio.emit("new item", {'data': item}). Получается программа разбита на две части: бизнес логика и web ui. В бизнес логике +- 100 потоков работает. Запускаю через gevent.WSGIServer, так же пробовал через
socketio.run(). Проблема в том что на моем пк(windows) все работает отлично, но когда дошло до деплоймента(ubuntu 20.04) заметил что сервер отправляет сообщения пачками примерно каждые 5-6 сек, то есть сервер как бы отправил сообщение но фронт получит его в следущей пачке. Погуглив нашел похожие проблемы, которые были решены при помощи gevent.monkey patch_all() или eventlet monkey_patch(). Но мне это решание не подошло так как monkey patch блокирует мою бизнес логику в которой используется много потоков, и программа просто виснет. Пытался использовать path_all(thread=False), но не помогло. Если использовать деффолтный дев сервер фласка(нет поддержки протокола ws) с лонг пуллингом то все работает довольно быстро, без фризов. Уже день сижу над этой проблемой, может кто-то даст какой-то совет, заранее спасибо!