У меня есть рабочий Flask -SocketIO сервер, но он не работает с Gunicorn. Соответствующая часть сервера выглядит следующим образом:
def main(env, resp):
app = Flask(__name__,
static_url_path='',
static_folder='dist',
template_folder='dist')
socketio = SocketIO(app)
@app.route('/')
def home():
return app.send_static_file('index.html')
# socketio.run(app, host='0.0.0.0', port=8000) I comment this out when using Gunicorn because otherwise it tries to run the process twice and throws an error.
Я использую eventlet и выполняю следующую команду, как описано в Flask -SocketIO документах здесь :
gunicorn --worker-class eventlet -b 0.0.0.0:8000 -w 1 index:main
Процесс gunicorn запускается нормально, но когда я перехожу на страницу, я получаю следующую ошибку сервера:
Error handling request /
Traceback (most recent call last):
File "/home/myusername/.local/lib/python3.6/site-packages/gunicorn/workers/base_async.py", line 55, in handle
self.handle_request(listener_name, req, client, addr)
File "/home/myusername/.local/lib/python3.6/site-packages/gunicorn/workers/base_async.py", line 113, in handle_request
for item in respiter:
TypeError: 'NoneType' object is not iterable
Я не могу найти информацию об этой ошибке и ценю любые идеи.