背景
我正在尝试使用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发出请求,以检查特定用户是否已经被认证/授权连接到特定的socket?
socketio.run(app, port=5005)
并尝试在端口5005上访问REST API,会发生什么? - Sean Vieira