2012-07-22 56 views
0

我的應用程序是從2部分開發的 - rails前端和java後端。後端可以修改數據庫(添加,修改或刪除記錄),我正在尋找一個解決方案 - 如何監視數據庫從前端的變化推送到客戶端。當然 - 我可以將代碼添加到後端以通過http get調用某種方法,但是也許您可以向我推薦一些更好的方法?觀察軌道應用程序的數據庫更改

+0

你能對你的意思是Rails是在「前端」詳細說明了什麼?你有API嗎?只是用它來渲染視圖?你有一個客戶端的JavaScript應用程序? – 2012-07-22 12:46:44

+0

你是什麼意思「客戶端的JavaScript應用程序」?我使用了標準術語(http://en.wikipedia.org/wiki/Front_and_back_ends) - rails應用程序正在與用戶交互,而java應用程序正在與其他服務交互。我只需要通知前端將信息(通過faye)推送給用戶關於db的更改(例如 - 新記錄)。 – 2012-07-22 15:58:58

+0

Rails是一個MVC框架,可處理前端的視圖,以及後端的控制器和模型。爲什麼你將這個功能分成兩個獨立的部分?任何一個都可以處理兩者。我的意思是,一個JS應用程序必須在客戶端運行一些東西(通常是JavaScript),以使服務器請求更新視圖。 Rails和Java都不能做到這一點,如果你想推送數據,你需要類似web套接字的東西。 – 2012-07-22 16:52:59

回答

0

我推薦王菲寶石。結帳http://railscasts.com/episodes/260-messaging-with-faye。您需要在Java應用程序中構建一個調用Faye函數的「調用者」,一旦數據被處理。然後讓faye將數據推送給客戶。

補充: 建立一個API控制器與您的Rails應用程序,你的JAVA應用程序調用時,它更新數據中的作用。然後API操作可以使用Faye將數據推送到「客戶」欄。

如果要實現這種方式,你可以從Java應用程序,只更新客戶端需要更新您的通話非常具體。您還可以添加其他複雜功能,例如,如果您的數據經常更新,您可以對更新進行排隊並將它們按特定的可配置間隔推送。等等等等

+0

是什麼樣的我的意思。使用您的JAVA應用在更新數據時調用的操作構建API控制器。然後API操作可以使用Faye將數據推送到「客戶」欄。 – 2012-07-23 07:34:44

+0

這 – 2012-07-24 14:27:40

+0

我已經做到了:)但未來我打算通過redis添加交叉消息,因爲我將需要雙向集成(通知推送) – 2012-07-25 10:29:58