我正在编写RMI应用程序。
我能够执行RMI。数据通过RMI在客户端和服务器之间传输。
客户端应该始终接收/更新服务器端数据。
是否可以拥有一个可以从服务器向客户端传输或通知数据更新/修改的侦听器。 我的意思是每当在服务器端更新/修改数据时,客户端应该自动更新。 如果有任何可用于此任务的RMI Call be listener,请告诉我。
此外,执行RMI时要遵循的所有安全标准是什么?
我们如何通过客户端更新服务器端对象?如果我需要更新服务器端实例,我可以使用客户端更新它吗?
请指导我实现这一目标。
答案 0 :(得分:1)
RMI回调与RMI服务器对象没有区别,只不过它是从客户端而不是服务器导出的。
然而,由于客户端防火墙,它通常是不可行的架构。使用远程回调作为监听器会产生很大的开销,即使在局域网内也通常是不可行的。你真的不想这样做。
问题的最后一部分是关于如何编写远程方法调用,您应该参考Oracle RMI教程。
答案 1 :(得分:0)
我在类似的服务器端应用程序上工作。我们处理它的方式是,客户端到服务器通信是同步的并且通过RMI(通过HTTP)。但是,从服务器对客户端的响应是通过JMS消息队列发送的。每个客户端都有一个客户端订阅的专用队列。在客户端登录时,将创建队列,并在注销时销毁队列。这样来自服务器的客户端响应本质上是异步的。客户响应能力也会提高。如果服务器响应本质上是同步的,则客户端可能已经冻结。