У меня есть работающее приложение чата на localhost, но оно не работает на heroku ( Вопрос со вчерашнего дня ).
После некоторых исследований я думаю, что проблема в том, как я запускаю приложение.
В настоящее время Procfile:
web: gunicorn adult_main:app
Мне нужно использовать gevent
в сочетании с gunicorn
. Таким образом, я должен иметь возможность макс. 1000 соединений socket.io, чего мне хватает на данный момент.
Я уже установил и добавил gevent к requirements.txt
. Вот выдержка из файла:
Flask-SocketIO==2.9.6
gunicorn==19.7.1
gevent==1.2.2
gevent-socketio==0.3.6
gevent-websocket==0.10.1
Но я не понимаю, как правильно запустить приложение. В sidenote я использую бесплатный уровень heroku, чтобы проверить все.
Я попробовал несколько решений, которые я нашел в Интернете, но я не до конца их понимаю и пока не нашел документации по этому вопросу. Вот некоторые из моих попыток:
web: gunicorn -k gevent-socketio adult_main:app
web: gunicorn -k gevent adult_main:app
Я также пытался начать без Gunicorn, но я думаю, что это было совершенно неправильно.
Я на правильном пути здесь?
EDIT
Мне удалось продвинуться с:
web: gunicorn -k gevent -w 1 adult_main:app
Приложение теперь не запускается при запуске, но в веб-консоли появляется сообщение об ошибке:
socket.io.js:7 WebSocket connection to 'wss://my-
project.herokuapp.com/socket.io/?
EIO=3&transport=websocket&sid=0022c1937df648bbab836bfcb4c35' failed: Error
during WebSocket handshake: Unexpected response code: 500
В логах героку:
RuntimeError: You need to use the gevent-websocket server.
EDIT
Даже если я вижу эти ошибки, чат теперь работает на героку. Это действительно странно. Вероятно, я могу установить сейчас только 1 соединение, как продолжить сейчас?