Flask SocketIO 引发 ValueError
Flask SocketIO raises a ValueError
我正在尝试设置一个可以使用 SocketIO
的 Flask 服务器,但是它不起作用并且 returns 我遇到了以下错误:
ValueError: signal only works in main thread
这是我对烧瓶环境的设置:
export FLASK_APP=application.py
export FLASK_DEBUG=1
然后我 运行 就像我通常做的那样,并且会在我开始使用 SocketIO
:
之前工作
flask run
这是我的 application.py
代码,它非常简单但也许有帮助:
import os
from flask import Flask
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")
socketio = SocketIO(app)
@app.route("/")
def index():
return "Hello, world"
在当前版本的 Flask-SocketIO 中,flask run
启动服务器的方法只能在使用 Flask 开发服务器时使用,不推荐,因为它不支持 WebSocket。
我建议您按如下方式更改您的应用程序:
import os
from flask import Flask
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")
socketio = SocketIO(app)
@app.route("/")
def index():
return "Hello, world"
if __name__ == '__main__':
socketio.run(app, debug=True)
然后 运行 应用程序:
python application.py
我正在玩 flask_socketio 只是为了了解它是如何工作的。所以我的解决方法可能并不理想。
我运行跟随航站楼
$ export FLASK_ENV=production
$ flask run
我收到以下警告,但我的测试应用程序有效
Serving Flask app "<applicationname>.py"
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
[2019-03-20 09:58:09,131] WARNING in __init__: Flask-SocketIO is Running under Werkzeug, WebSocket is not available.
我正在尝试设置一个可以使用 SocketIO
的 Flask 服务器,但是它不起作用并且 returns 我遇到了以下错误:
ValueError: signal only works in main thread
这是我对烧瓶环境的设置:
export FLASK_APP=application.py
export FLASK_DEBUG=1
然后我 运行 就像我通常做的那样,并且会在我开始使用 SocketIO
:
flask run
这是我的 application.py
代码,它非常简单但也许有帮助:
import os
from flask import Flask
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")
socketio = SocketIO(app)
@app.route("/")
def index():
return "Hello, world"
在当前版本的 Flask-SocketIO 中,flask run
启动服务器的方法只能在使用 Flask 开发服务器时使用,不推荐,因为它不支持 WebSocket。
我建议您按如下方式更改您的应用程序:
import os
from flask import Flask
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")
socketio = SocketIO(app)
@app.route("/")
def index():
return "Hello, world"
if __name__ == '__main__':
socketio.run(app, debug=True)
然后 运行 应用程序:
python application.py
我正在玩 flask_socketio 只是为了了解它是如何工作的。所以我的解决方法可能并不理想。
我运行跟随航站楼
$ export FLASK_ENV=production
$ flask run
我收到以下警告,但我的测试应用程序有效
Serving Flask app "<applicationname>.py"
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
[2019-03-20 09:58:09,131] WARNING in __init__: Flask-SocketIO is Running under Werkzeug, WebSocket is not available.