socketservice.py:Flask socket.io Nachrichtenereignisse in verschiedenen Dateien
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
from backend.database import db
app = Flask(__name__)
socketio = SocketIO(app, engineio_logger=True)
@socketio.on('connect')
def handle_connection():
from backend.electionAdministration import syncElections
syncElections()
if __name__ == '__main__':
socketio.run(app)
electionAdministration.py:
from flask_socketio import SocketIO, emit
from bson.json_util import dumps
from backend.socketservice import socketio
from backend.database import db
def syncElections():
elections = db.elections.find()
emit('syncElections',dumps(res) , broadcast=True)
@socketio.on('createElection')
def createElection(data):
db.elections.insert({'title': data["title"]})
syncElections()
Das Problem ist, dass das createElection
Ereignis wird nie genannt wird, wenn es innerhalb der Datei electionAdministration.py
. Wenn ich es in socketservice.py
verschiebe, funktioniert es plötzlich.
Aber ich meine, ich kann nicht alles in eine Datei schreiben, da es sehr chaotisch wird, wenn die Anwendung wächst.
Ich könnte schwören, dass es für eine Weile funktioniert hat, aber ich könnte mit dem Ereignis in beiden Dateien gelandet sein. Wie auch immer, selbst mit der Import-Anweisung, die Sie erwähnt haben, wird das Ereignis immer noch nicht aufgerufen, wenn es nur in der importierten Datei ist :( – netik
Meine Antwort wurde mit Informationen über '__main__' aktualisiert. – Miguel