TłoKolba: spokojny API i SocketIO Server
Próbuję utworzyć prosty REST API używając rozszerzenia Kolba-spokojny. Ten interfejs API będzie działać przede wszystkim w celu zarządzania CRUD i uwierzytelniania użytkowników dla prostej usługi.
Próbuję również utworzyć kilka gniazd internetowych za pomocą rozszerzenia Flask-SocketIO, z których użytkownicy będą mogli się łączyć i oglądać aktualizacje w czasie rzeczywistym dla niektórych danych związanych z innymi osobami korzystającymi z usługi. W związku z tym muszę wiedzieć, że ci użytkownicy są uwierzytelnieni i upoważnieni do łączenia się z określonymi gniazdami.
Problem
Jednak mam trochę kłopotów z konfiguracją. Wygląda na to, że nie mogę mieć tych dwóch komponentów (REST API i serwera SocketIO) współpracujących w tej samej instancji Flask. Dlatego mówię to dlatego, że gdy uruchamiam następujące, albo API REST lub serwer SocketIO będzie działać, ale nie oba:
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)
Pytanie
jest typowym rozwiązaniem dla tego typu skonfigurować, aby miały dwa odrębne instancje Flasku w tym samym czasie? Na przykład, czy mój serwer SocketIO musi wysyłać żądania do mojego interfejsu REST API, aby sprawdzić, czy określony użytkownik jest uwierzytelniony/autoryzowany do połączenia z konkretnym gniazdem?
Co się stanie, jeśli * po prostu * użyjesz 'socketio.run (app, port = 5005)' i spróbujesz trafić na REST API na porcie 5005? –
@SeanVieira Z jakiegoś powodu to działa dobrze ... Przypuszczam, że po prostu utrzymam swoje API i gniazda na tym samym porcie, następnie – nmagerko