2012-08-04 25 views
9

我的後端在Postgres。我正在使用Scala來構建它的API。Scala + Play + Akka。是否需要Backbone.js?

每當數據庫發生變化時,我都希望通知我的Chrome擴展。我有幾個關於這方面的問題:

  1. 我應該在這裏實現websockets還是長時間輪詢?
  2. 如果網絡套接字,有沒有什麼好的例子,我該如何使用Scala + play + Akka和javascript?
  3. 我相信我必須實現一些稱爲觀察者模式的東西,通知我的Chrome擴展如果數據有任何更改。有沒有其他的模式可以讓我用最少的數據庫開銷來完成這樣的事情。
  4. 我應該使用Redis還是RabbitMQ來處理這個特定通知部分的事情?
+2

Play分發了幾個示例應用程序。我發現「WebSocket Chat」示例程序對於學習處理Scala/Play/Akka/JavaScript/WebSockets非常有用。 – Destin 2012-08-06 21:08:16

+0

如果您的通知不是「實時」(=每隔幾秒),您可能需要考慮只需每隔X分鐘/小時/天就進行一次「拉動」並用新狀態更新瀏覽器動作按鈕。 – 2012-08-08 08:26:20

+0

拉通知將是實時的。因此,這個問題。 – Hick 2012-08-08 15:43:34

回答

2

1)我會用http://socket.io/

3)這是個有趣的問題。觀察者模式通常用於前端。我會建議你看看這篇文章http://addyosmani.com/largescalejavascript/。它幫助我更好地構建我的應用程序。它基本上是具有EventBroker/Mediator之間的Pub/Sub模式。將發佈者和訂閱者分開是理想的。您可以將EventBroker放置在您的應用程序名稱空間中。通過這種方式,您可以訪問模塊中的消息總線,而無需始終通過模塊傳遞參考。

4)我們已經在網站上使用redis進行實時/時間通知,這些通知具有類似pinterest的功能。 Redis的性能給我留下了深刻的印象。