Flask-SocketIO + Gevent:没有日志记录,没有后端请求通过
Flask-SocketIO + Gevent: No logging, no backend requests going through
即使通过 Postman 请求问题仍然存在,所以我很确定此时这纯粹是后端问题。我打开了所有的日志记录,但我只有一条确认“服务器已为 gevent 初始化”的消息。如果我向后端发送请求,它就会永远挂起。没有错误代码,什么都没有。
如果我 运行 它作为普通烧瓶 app/uninstall gevent-websocket 工作正常,所以我很确定这是问题所在。除此之外,我有点难过。
相关代码:
UPLOAD_FOLDER = 'profile_pictures'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
app = flask.Flask(__name__)
CONNECTION = connect("testing", host=os.getenv("CONNECTION_STRING"))
app.config["JWT_ACCESS_LIFESPAN"] = {"hours": 24}
app.config["JWT_REFRESH_LIFESPAN"] = {"days": 30}
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
guard = flask_praetorian.Praetorian()
guard.init_app(app, user_class=User)
CORS(app, origins=["http://localhost:3000","https://jmsa-tutoring.netlify.app"])
socketio = SocketIO(app, logger=True, engineio_logger=True, cors_allowed_origins=["http://localhost:3000","site"], async_mode="gevent")
mail = Mail(app)
.
.
.
Routes
.
.
.
if __name__ == '__main__':
port = int(os.environ.get('PORT'))
socketio.run(app=app, use_reloader=True, port=port, debug=True)
如果有人想知道,这是我自己也想出的另一件事。我有另一个优先进口,所以我没有猴子修补 gevent 足够高。干杯。
即使通过 Postman 请求问题仍然存在,所以我很确定此时这纯粹是后端问题。我打开了所有的日志记录,但我只有一条确认“服务器已为 gevent 初始化”的消息。如果我向后端发送请求,它就会永远挂起。没有错误代码,什么都没有。
如果我 运行 它作为普通烧瓶 app/uninstall gevent-websocket 工作正常,所以我很确定这是问题所在。除此之外,我有点难过。
相关代码:
UPLOAD_FOLDER = 'profile_pictures'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
app = flask.Flask(__name__)
CONNECTION = connect("testing", host=os.getenv("CONNECTION_STRING"))
app.config["JWT_ACCESS_LIFESPAN"] = {"hours": 24}
app.config["JWT_REFRESH_LIFESPAN"] = {"days": 30}
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
guard = flask_praetorian.Praetorian()
guard.init_app(app, user_class=User)
CORS(app, origins=["http://localhost:3000","https://jmsa-tutoring.netlify.app"])
socketio = SocketIO(app, logger=True, engineio_logger=True, cors_allowed_origins=["http://localhost:3000","site"], async_mode="gevent")
mail = Mail(app)
.
.
.
Routes
.
.
.
if __name__ == '__main__':
port = int(os.environ.get('PORT'))
socketio.run(app=app, use_reloader=True, port=port, debug=True)
如果有人想知道,这是我自己也想出的另一件事。我有另一个优先进口,所以我没有猴子修补 gevent 足够高。干杯。