我正在使用 Flask 和 Flask-SocketIO 构建用于 websocket 通信的 Web 界面/数据 API。我想开始转向使用 Gevent/Gevent-websocket、Gunicorn 以及最终 Nginx 进行负载平衡的更适合开发的设置。但是,安装 Gevent 和 Gevent-websocket 后,启动 SocketIO 服务器时仍然收到警告消息:
WebSocket transport not available. Install eventlet or gevent and gevent-websocket for improved performance.
Run Code Online (Sandbox Code Playgroud)
根据 Flask-SocketIO 文档,
当应用程序处于调试模式时,Werkzeug 开发服务器仍然在 socketio.run() 内使用并正确配置。在生产模式下,如果可用,则使用 eventlet Web 服务器,否则使用 gevent Web 服务器。如果未安装 eventlet 和 gevent,则使用 Werkzeug 开发 Web 服务器。
这意味着 Gevent 的使用应该作为 Flask-SocketIO 的一部分在幕后自动化。我使用 pip list 检查了我的 Python 安装,并确认我安装了 Gevent 1.3.4 和 Gevent-websocket 0.10.1。以下是 SocketIO 服务器的初始化代码:
应用程序.py
flaskApp = Flask(__name__)
flaskApp.config['SESSION_TYPE'] = 'filesystem'
Session(flaskApp)
socketio = …Run Code Online (Sandbox Code Playgroud)