背景
我正在尝试使用 Flask-RESTful 扩展创建一个简单的 REST API。此 API 将主要用于管理简单服务的 CRUD 和用户身份验证。
我还尝试使用 Flask-SocketIO 扩展创建一些 Web 套接字,这些用户将能够连接到这些用户并查看与使用该服务的其他人相关的某些数据的实时更新。因此,我需要知道这些用户经过身份验证并被授权连接到某些套接字。
问题
但是,我在设置时遇到了一些麻烦。似乎我无法让这两个组件(REST API 和 SocketIO 服务器)在同一个 Flask 实例上一起工作。我之所以这么说是因为当我运行以下命令时,REST API 或 SocketIO 服务器都可以工作,但不能同时工作:
from flask import Flask
from flask_restful import Api
from flask.ext.socketio import SocketIO
app = Flask(__name__)
api = Api(app)
socketio = SocketIO(app)
# some test resources for the API and
# a test emitter statement for the SocketIO server
# are added here
if __name__ == '__main__':
app.run(port=5000)
socketio.run(app, port=5005)
问题
这种设置的典型解决方案是同时运行两个不同的 Flask 实例吗?例如,我的 SocketIO 服务器是否必须向我的 REST API 发出请求才能检查特定用户是否经过身份验证/授权以连接到特定套接字?