фонНастой: успокоительной API и SocketIO Сервер
Я пытаюсь создать простой REST API с помощью Колба-RESTful расширение. Этот API будет работать в основном для управления CRUD и аутентификации пользователей для простой службы.
Я также пытаюсь создать несколько веб-сокетов с помощью расширения Flask-SocketIO, с помощью которого эти пользователи смогут подключаться и просматривать обновления в режиме реального времени для некоторых данных, связанных с другими людьми, использующими эту службу. Поэтому мне нужно знать, что эти пользователи аутентифицированы и авторизованы для подключения к определенным сокетам.
Проблема
Однако, у меня немного хлопот получать настройки. Похоже, что я не могу использовать эти два компонента (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, чтобы проверить, что конкретный пользователь аутентифицирован/авторизован для подключения к определенному сокету?
Что произойдет, если вы * просто * используете 'socketio.run (app, port = 5005)' и попытаетесь попасть в REST API на порт 5005? –
@SeanVieira По какой-то причине это прекрасно работает ... Полагаю, что я просто сохраню свой API и сокеты в одном и том же порту, а затем – nmagerko