9

Mein Backend ist in Postgres. Ich benutze Scala, um APIs davon zu erstellen.Scala + Play + Akka. Benötigen Sie Backbone.js?

Jedes Mal, wenn sich die Datenbank ändert, möchte ich, dass meine Chrome-Erweiterung benachrichtigt wird. Ich habe ein paar Fragen dazu:

  1. Sollte ich WebSockets hier implementieren oder lang polling?
  2. Wenn Web-Sockets, gibt es einige gute Beispiele dafür, wie mache ich es mit scala + play + Akka und Javascript?
  3. Ich glaube, ich muss etwas implementieren, das als Beobachtermuster bezeichnet wird, das meine Chrome-Erweiterung benachrichtigt, wenn sich Daten ändern. Gibt es ein anderes Muster, dem ich folgen sollte, um so etwas mit dem minimalen DB Overhead zu schaffen?
  4. Sollte ich Redis oder RabbitMQ verwenden, um mit dieser bestimmten Benachrichtigung Teil der Dinge umzugehen?
+2

Play wird mit mehreren Beispielanwendungen verteilt. Ich fand das Beispielprogramm "WebSocket Chat" _immens_ hilfreich für das Erlernen der Handhabung von Scala/Play/Akka/JavaScript/WebSockets. – Destin

+0

Wenn Ihre Benachrichtigungen nicht in Echtzeit angezeigt werden (= alle paar Sekunden), sollten Sie in Erwägung ziehen, einfach einen "Pull" zu machen und Ihre Browser-Aktionsschaltfläche mit dem neuen Status alle X min/Stunden/Tage zu aktualisieren . –

+0

Pull-Benachrichtigungen werden in Echtzeit sein. Also das Problem. – Hick

Antwort

2

1) Ich verwende würde http://socket.io/

3) Das ist interessant Frage. Das Beobachtermuster wird üblicherweise am Frontend verwendet. Ich würde Ihnen empfehlen, diesen Artikel http://addyosmani.com/largescalejavascript/ zu überprüfen. Es hat mir geholfen, meine Anwendung besser zu strukturieren. Es ist im Grunde Pub/Sub-Muster mit EventBroker/Mediator zwischen. Es wäre ideal, Publisher und Subcriber zu entkoppeln. Sie können EventBroker in Ihrem Anwendungsnamespace platzieren. Auf diese Weise haben Sie Zugriff auf den Nachrichtenbus von Ihren Modulen aus, ohne ständig die Referenz durch Module übergeben zu müssen.

4) Wir haben Redis für Real/Time-Benachrichtigungen auf der Website verwendet, die ähnliche Funktionen wie pinterest haben. Ich bin beeindruckt von Redis-Leistung.