创建SocketIO对象
首先,使用 PyCharm Professional 版创建一个 Flask 项目,命名为 im_demo,然后在 app.py 文件中添加以下代码:
from flask import Flask, render_template, request, redirect, session
from flask_socketio import SocketIO
app = Flask(__name__)
app.config['SECRET_KEY'] = "fasdfsdfasdkj"
socketio = SocketIO(app)
@app.route('/')
def hello_world():
return "Hello World!"
if __name__ == '__main__':
socketio.run()
python
上述代码中,除了使用 PyCharm Professional 版自动生成的 Flask 项目源代码,我们还从 flask_socketio 中导入了 SocketIO 类,并且把 app 作为参数,创建了一个 SocketIO 类的对象 socketio。最后在运行时,将 app.py 的运行方式从之前的 app.run 改成了 socketio.run。socketio.run 会自动根据以下环境选择底层运行服务器。
-
如果开启了 Debug 模式,将使用 werkzeug 开发服务器。
-
在生产环境中,如果安装了 eventlet,会优先使用 eventlet 作为服务器。
-
判断是否安装了 gevent,如果安装了,会使用 gevent 作为服务器。gevent 默认不带有 WebSocket 功能,如果使用 gevent,则还需要安装 gevent-websocket。
-
如果 eventlet 和 gevent 都没有安装,则会使用 werkzeug 开发服务器运行项目。