我正在构建一个web接口/数据API,使用烧瓶和Flask进行websocket通信。我想开始转向使用Gevent/Gevent、Gunicorn和最终Nginx来实现负载平衡的更易于开发的设置。但是,在安装Gevent和Gevent之后,在启动SocketIO服务器时仍然会收到一条警告消息:
WebSocket transport not available. Install eventlet or gevent and gevent-websocket for improved performance.根据酒瓶-SocketIO文件,
当应用程序处于调试模式时,Werkzeug开发服务器仍然在socketio.run()中被正确使用和配置。在生产模式中,如果可用,则使用事件web服务器,否则使用gevent web服务器。如果未安装eventlet和gevent,则使用Werkzeug开发web服务器。
这意味着Gevent的使用应该作为的一部分在幕后实现自动化。我用pip列表检查了Python安装,并确认已经安装了Gevent 1.3.4和0.10.1。下面是SocketIO服务器的初始化代码:
app.py
flaskApp = Flask(__name__)
flaskApp.config['SESSION_TYPE'] = 'filesystem'
Session(flaskApp)
socketio = SocketIO(flaskApp, async_mode='threading', manage_session=False)
def createApp():
flaskApp.secret_key = "super secret"
socketio.run(flaskApp, host='0.0.0.0', port=80)start.py
app.register_blueprint(monitor.blueprint)
...
createApp()为什么烧瓶-SocketIO没有检测到我的Gevent安装?
发布于 2018-07-15 16:30:36
引用的文档部分引用了async_mode参数,以及默认情况下如何设置它。您正在设置async_mode='threading',以便禁用异步模式的自动选择。移除参数,然后根据您安装的内容,您将得到eventlet或gevent。
https://stackoverflow.com/questions/51330473
复制相似问题