gpt4 book ai didi

java - 有没有办法通过 RMI 对象发送事件?

转载 作者:太空宇宙 更新时间:2023-11-04 08:50:46 25 4
gpt4 key购买 nike

我有几个客户端都通过 RMI 引用同一个远程对象,我想知道当其中一个客户端在其上运行远程方法时,是否可以将事件发送到所有客户端中的 stub 对象。

例如,如果远程对象“obj”有一个“updateValue()”方法,并且客户端 A 通过 stub 对象运行该方法,那么具有真实“obj”的服务器是否可以发送一个事件,告诉客户端 A、B、C 等...该对象已更新?

最佳答案

RMI是一种客户端-服务器技术,RMI channel 可用于与服务器上的远程对象进行通信,但服务器无法回调客户端。

没有什么可以阻止你拥有两个 RMI channel ,以便双方都充当客户端服务器,如果你明白我的意思的话。

我们这样做是为了向连接到中央服务器的桌面应用程序发送通知,并且效果很好。桌面应用程序导出(用 RMI 术语)回调 stub ,连接到中央服务器,并在服务器上注册回调 stub 。然后,服务器可以向所有连接的桌面应用程序发送通知。当然,您需要设置网络基础设施(防火墙等)以便可以进行双向连接。所以是的,我想说这是可能的,但比单个单向 channel 需要更多的努力。

我只快速浏览了 this article ,但它似乎说明了这个想法(如果不是这样,请告诉我,我确信我可以找到此用例的代码片段)。

其他替代方案包括轮询或 JMS,如其他答案中所述。

关于java - 有没有办法通过 RMI 对象发送事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3390454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com