Flask Restful 和 Flask SocketIO 服务器 运行

Flask Restful and Flask SocketIO server run together

我正在尝试同时使用 Flask Restful 和 Flask SocketIO。我已经制作了一个 Flask Restful 应用程序,但现在我想使用 Flask SocketIO 在客户端和我的服务器之间进行实时通信。

from flask import Flask
from flask_restful import Api
from flask_socketio import SocketIO

app = Flask(__name__)
api = Api(app)
socketio = SocketIO()

if __name__ == '__main__':
    socketio.run(app, port=5000, host='0.0.0.0')
    app.run(port=5000, host='0.0.0.0')

一旦我运行这个,我得到

Traceback (most recent call last):
  File "app.py", line 10, in <module>
    socketio.run(app, port=5000, host='0.0.0.0')
  File "C:\Python27\lib\site-packages\flask_socketio\__init__.py", line 475, in run
    if self.server.eio.async_mode == 'threading':
AttributeError: 'NoneType' object has no attribute 'eio'

我是 Flask 编码的初学者。希望你能帮助我。谢谢

Flask-Restful 不会改变您启动服务器的方式。你可以这样做:

app = Flask(__name__)
api = Api(app)
socketio = SocketIO(app)

if __name__ == '__main__':
    socketio.run(app, port=5000, host='0.0.0.0')

您在问题中粘贴的代码有一个导致 AttributeError 的错误,那就是您没有将 app 实例传递给 SocketIO 构造函数。