我在Gunicorn WSGI HTTP Server上运行了一个烧瓶应用程序。我的烧瓶版本是0.10.1。下面给出了我的应用初始化的简单版本。在真正的应用程序中,它做了很多事情。
import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!
我使用shell脚本运行应用程序。
exec gunicorn --timeout 300 -c "$ROOT"/deploy/gunicorn.conf.py deploy:app "$@"
配置文件gunicorn.conf.py如下所示。
#!/usr/bin/env python
import multiprocessing
bind = "127.0.0.1:18000"
workers = min(4, multiprocessing.cpu_count() * 2 + 1)
preload = True
worker_class = "gevent"
loglevel = "warning"
到目前为止,这一切都正常。现在,我正在我的一个应用程序页面中实现套接字功能。套接字仅用于该特定页面,而不是在浏览其他页面时使用。我在服务器部分使用Flask_socketio,在客户端使用socket.io。
根据链接socket.io with flask,我需要使用
运行应用if __name__ == '__main__':
socketio.run(app)
现在我的困惑是,我是否需要将整个app对象包装在socketio中并使用socketio.run(app)启动它。我还没有其他方法可以为该页面初始化套接字。另外我想知道如果从现在开始使用socketio.run(app)会有什么影响。