Проблема должна быть воспроизведена с помощью следующих двух минимальных примеров:
Минимальный пример с app.run()
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello'
app.run()
Минимальный примерс gevent.pywsgi.WSGIServer
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello'
from gevent import pywsgi
from geventwebsocket.handler import WebSocketHandler
server = pywsgi.WSGIServer(('127.0.0.1', 5000), app, handler_class=WebSocketHandler)
server.serve_forever()
Первые 5 строк идентичны, поэтому оба примера отличаются только тем, как они запускают сервер.Оба сервера работают, я получаю «Привет» в браузере.Первый пример печатает:
* Serving Flask app "1" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [20/Jun/2019 23:43:15] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [20/Jun/2019 23:43:19] "GET / HTTP/1.1" 200 -
Таким образом, вывод консоли показывает некоторую информацию о каждом запросе, который обрабатывается сервером.
Однако во втором примере я не получаю никакихрегистрация выходных данных в консоли больше.Как включить ведение журнала для gevent.pywsgi.WSGIServer
и WebSocketHandler
?
Фон (думаю, это не имеет значения)
Iзапускаю приложение Flask, которое использует flask_sockets
.Поскольку
Сервер разработки Werkzeug не может предоставить среде WSGI интерфейс веб-сокета
Я не могу использовать сервер с app.run()
, и я использую gevent.pywsgi.WSGIServer
вместо.Код моего примера выше взят непосредственно из примеров модуля на https://github.com/heroku-python/flask-sockets без каких-либо изменений.