我试图实现由RMI管理的ID锁定系统。非常多的情况是,当客户端输入一个ID时,它会将该ID发送到RMI服务器,RMI服务器将其存储在一个列表中,以及客户端ID和循环计数器。Java RMI心跳时间过程循环
服务器在30秒后将递增所有的周期计数器。除非客户端沿Unlock消息发送消息,否则客户端将沿着Heartbeat发送消息,该消息会将该周期计数器更新回0.如果循环计数器> = 3,则服务器将假定客户端已不正确地断开连接并释放锁定ID。
我一直在网上进行研究,并且发现了很多非常具体的做法,但太多看起来太模糊,或者太针对一个项目的需求。我想我对如何做到这一点有一个大致的想法,但我想直观地看到:
1 -大多数实现都会在独立线程的无限循环中发生这种“循环更新”逻辑。它是否正确?它看起来像我的RMI服务器的主类很少发生,也许我可以在那里实现循环。
2 -如果确实线程是正确的路线,我何时启动线程?有没有什么特别的方法需要完成?我在网上查找并发现许多网站都说使用线程,但没有一个显示他们执行线程的好地方。
感谢您提供的任何帮助。我对RMI仍然很满意,所以我感谢你的耐心。
您应该使用Unreferenced接口作为其中的一部分。它为你做活性检查。 – EJP
我在Unreference接口上阅读。看起来只有在没有更多客户端连接到服务器时才会触发。每当服务器被任何客户端取消引用时,我都会需要它启动。 – UtMan88