擅长:python、mysql、java
<p>当您运行<code>app.run(debug=True)</code>时,您明确地告诉Flask在基于Werkzeug的开发web服务器上运行您的应用程序。加载eventlet并不重要。</p>
<p>如果要在eventlet web服务器上运行应用程序,则必须启动eventlet web服务器,根据<a href="http://eventlet.net/doc/modules/wsgi.html?highlight=wsgi">the documentation</a>,该服务器按如下方式启动:</p>
<pre><code>wsgi.server(eventlet.listen(('', 8000)), your_app)
</code></pre>
<p>这或多或少是<code>socketio.run()</code>在我的Flask SocketIO扩展中所做的,对于可选地处理SSL来说要复杂一些。执行此操作的代码行是:<a href="https://github.com/miguelgrinberg/Flask-SocketIO/blob/539cd158f49ce085151911cb63edbacd0fa37173/flask_socketio/__init__.py#L391-L408">https://github.com/miguelgrinberg/Flask-SocketIO/blob/539cd158f49ce085151911cb63edbacd0fa37173/flask_socketio/<strong>init</strong>.py#L391-L408</a>。如果您查看这些行,您将看到有三个不同的启动代码块,一个用于werkzeug,一个用于eventlet,一个用于gevent。他们都不一样。</p>