MessageBus - So richten Sie Messagebus mit Dart-Flutter ein

Hallo zusammen,

ich entwickle eine mobile Anwendung, die Discourse zum Abrufen und Senden von Daten verwendet. Im Moment sende ich alle 30 Sekunden eine Anfrage, um zu prüfen, ob es neue Beiträge in einem Thema gibt. Dies könnte unser Forum potenziell schädigen, indem wir uns versehentlich selbst überlasten (DDoS).

Ich habe nach einer guten Lösung mit WebSockets in Flutter gesucht, aber bisher ohne Erfolg. Für Discourse bin ich auf MessageBus gestoßen, dessen Dokumentation verwirrend ist.

Wir haben MessageBus jedoch auf unserem Forum eingerichtet, wie diese Abfrageanfrage zeigt:
image

Meine Frage ist also, ob jemand eine Idee hat, wie dieses Problem gelöst werden kann und ob er Erfahrung mit MessageBus oder Flutter WebSockets hat.

1 „Gefällt mir“

MessageBus ist eine Option – Sie finden Client-Bibliotheken für Ruby und JS hier: GitHub - discourse/message_bus: A reliable and robust messaging bus for Ruby and Rack

Eine einfachere Lösung ist jedoch wahrscheinlich die Verwendung der Webhooks-Funktion von Discourse. Auf diese Weise kann Discourse bei jedem neuen Thema/Beitrag eine Webanfrage an Ihren Endpunkt senden. Weitere Informationen finden Sie hier:

5 „Gefällt mir“

Ich sehe nicht, wie Webhooks mit einem Flutter-Frontend zusammenhängen oder überhaupt nützlich wären.

Es scheint, dass das, wonach OP sucht, eine Dart-Implementierung des MessageBus-Clients ist … die wahrscheinlich aus diesem Javascript-Code zurückentwickelt werden müsste. Eine weitere Alternative könnte darin bestehen, den Javascript-Code innerhalb von Dart auszuführen und ihn dann in Bindings zu verpacken, um von Javascript nach Dart zu übersetzen. Eine direkte Portierung nach Dart sollte die performantere dieser beiden Optionen sein.

Bitte korrigieren Sie mich, wenn ich falsch liege. Das ist nichts, womit ich mich beschäftigt habe, aber ich finde die Idee eines Flutter-Frontends faszinierend.

3 „Gefällt mir“

Die Idee wäre Webhooks → Ihr Backend → Ihre App. Die App würde also die Webhooks nicht direkt empfangen.

4 „Gefällt mir“