Ich versuche, meine Flask-App so einzurichten, dass RabbitMQ als Nachrichtenwarteschlange verwendet wird. Es funktioniert gut, wenn ich Nachrichten vom Server ausliege, aber wenn ich versuche, Nachrichten auszugeben passiert nichts. Es scheint, als ob der Front-End-Socket nicht mit der Warteschlange kommuniziert.Flask-SocketIO empfängt keine Nachrichten vom Frontend, wenn es mit RabbitMQ verwendet wird
Mein Socket-Code sieht wie folgt aus:
from flask_socketio import emit, SocketIO
socketio_mp = SocketIO(message_queue='amqp://guest:[email protected]:5672//')
@socketio_mp.on('connected', namespace='/test')
def joined():
"""Sent by clients when they enter a room.
A status message is broadcast to all people in the room."""
print('connected')
Der Sockel richtig in den Kolben-SocketIO docs wie gezeigt initialisiert. Das Ereignis connected
wird nie ausgelöst, obwohl es vom Frontend ausgegeben wird.
var namespace = "/test";
socket = io.connect(location.protocol + "//" + document.domain + ":" + location.port + namespace);
socket.on("connect", function() {
console.log("connected");
socket.emit("connected", {msg: "next"});
});
Ich bekomme auch keine Fehler in der Konsole.
Der angegebene Code zeigt nicht, wie Sie die App ausführen. Wie in den Flask-SocketIO-Dokumenten angegeben, sollten Sie die App über 'socketio.run()' ausführen, indem Sie den Flask 'app.run()' umschließen. – farzad
@farzad Ich initialisiere die App tatsächlich richtig. Die App funktioniert, wenn die Nachrichtenwarteschlange nicht hinzugefügt wird. –
Die Problemadresse hier https://github.com/miguelgrinberg/Flask-SocketIO/issues/248 –