Flask Restful和Flask SocketIO服务器如何同时运行?

5

我正在尝试同时使用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进行编码。希望你能帮助我。谢谢。

1个回答

9

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构造函数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接