我有一个JRuby / Rails应用程序需要从用Java编写的系统中获取数据。我已经研究过如何从Ruby调用Java代码。
但是,假设我需要创建Client对象,启动线程,与内部系统进行通信等,并且数据在回调中异步传递。
我是否必须使用与Java系统的永久连接编写单独的Web服务(创建此客户端)?以这种方式,我的Ruby / Rails代码可以同步调用它。或者是否可以直接在Rails中编写此异步处理程序?
当多个HTTP客户端发出他们的GET时,我当然必须在第一个客户端到达时连接到Java系统。对于以下客户,数据已经存在。
我意识到正确的解决方案是什么,但我很好奇我是否可以在Rails中完成所有工作。
我可以(现在)在没有实时更新网页的情况下生存,只要Java回调中的数据存储在“某处”,以便下一个HTTP刷新/ GET可以返回它。 Nest步骤将是SSE,Javascript等。
我想我知道如何创建Java Web服务,但我宁愿用更少的服务让解决方案更简单。
由于
答案 0 :(得分:0)
由于您还可以访问java代码,因此我有两种扩展java后端的方法,以便提供您想要在ruby前端应用程序中使用的数据。
您的ruby Web服务可以使用REST(或任何其他HTTP方法)与后端进行交互。这将导致更清晰,更可重用的代码。由于您可以使用任何能够使用HTML的客户端访问后端数据。
在这种方法中,客户端必须连接到后端的TCP套接字才能来回发送数据。您必须编写一个基于字节或字符串的小协议,您还必须解析它。它比第一种方法更复杂,但也更具有性能,您不必依赖外部库(例如,针对REST的球衣)。它还具有前一种方法的所有优点,可以为任何能够进行网络通信和套接字处理的客户端提供服务。