创建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 会自动根据以下环境选择底层运行服务器。

  1. 如果开启了 Debug 模式,将使用 werkzeug 开发服务器。

  2. 在生产环境中,如果安装了 eventlet,会优先使用 eventlet 作为服务器。

  3. 判断是否安装了 gevent,如果安装了,会使用 gevent 作为服务器。gevent 默认不带有 WebSocket 功能,如果使用 gevent,则还需要安装 gevent-websocket。

  4. 如果 eventlet 和 gevent 都没有安装,则会使用 werkzeug 开发服务器运行项目。