2012-07-22 55 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