HintergrundFlask: Ein RESTful API und SocketIO Server
Ich versuche, einen einfachen REST-API der Kolben-RESTful Erweiterung erstellen verwenden. Diese API wird hauptsächlich für die Verwaltung der CRUD und die Authentifizierung von Benutzern für einen einfachen Dienst verwendet.
Ich versuche auch, einige Web-Sockets mit der Flask-SocketIO-Erweiterung zu erstellen, mit denen diese Benutzer eine Verbindung herstellen können und Echtzeit-Updates für einige Daten zu anderen Personen, die den Dienst verwenden, anzeigen. Daher muss ich wissen, dass diese Benutzer authentifiziert und berechtigt sind, sich mit bestimmten Sockets zu verbinden.
Problem
Allerdings habe ich ein wenig Mühe aufgebaut zu werden. Es scheint, als ob ich nicht in der Lage bin, diese beiden Komponenten (die REST-API und der SocketIO-Server) in derselben Flask-Instanz zusammenarbeiten zu lassen. Der Grund, warum ich sage dies, weil, wenn ich folgendes ausführen, entweder die REST-API oder die SocketIO Server funktioniert, aber nicht beides:
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)
Frage
ist die typische Lösung für diese Art von eingerichtet, um zwei verschiedene Instanzen von Flask zur gleichen Zeit gehen zu lassen? Zum Beispiel müsste mein SocketIO-Server Anforderungen an meine REST-API stellen, um zu überprüfen, ob ein bestimmter Benutzer authentifiziert/berechtigt ist, sich mit einem bestimmten Socket zu verbinden?
Was passiert, wenn Sie * shootio.run (app, port = 5005) einfach verwenden und versuchen, die REST-API an Port 5005 zu erreichen? –
@SeanVieira Aus irgendeinem Grund funktioniert das gut ... Ich nehme einfach meine API und Sockets auf dem gleichen Port dann – nmagerko