Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing客户端-服务器同步,而不是重新发明轮子来保持一致性_Java_Synchronization - Fatal编程技术网

Java Swing客户端-服务器同步,而不是重新发明轮子来保持一致性

Java Swing客户端-服务器同步,而不是重新发明轮子来保持一致性,java,synchronization,Java,Synchronization,我需要实现一个概念验证应用程序Swing应用程序,其中有一个服务器有一个用户列表和几个客户端,这些客户端连接到服务器并对数据库和用户列表执行CRUD操作 我有一个明显的同步难题,那就是保持所有客户端列表的更新,这样,如果一个客户端删除了一个用户,另一个仍然在列表中的用户就不能更改其名称。 现在我知道了一个协议,在更新用户之前,客户机会询问服务器它是否仍然存在 然而,这只是一个简单的例子,但在实际应用程序中,我可能有连接表和对象之间的复杂引用,它们需要始终保持一致,我不想重新发明轮子 我想知道的

我需要实现一个概念验证应用程序Swing应用程序,其中有一个服务器有一个用户列表和几个客户端,这些客户端连接到服务器并对数据库和用户列表执行CRUD操作

我有一个明显的同步难题,那就是保持所有客户端列表的更新,这样,如果一个客户端删除了一个用户,另一个仍然在列表中的用户就不能更改其名称。 现在我知道了一个协议,在更新用户之前,客户机会询问服务器它是否仍然存在

然而,这只是一个简单的例子,但在实际应用程序中,我可能有连接表和对象之间的复杂引用,它们需要始终保持一致,我不想重新发明轮子

我想知道的是,是否有一些现成的解决方案或某个库可以完成这项工作,而不需要我更改数据库或加载极其复杂的依赖项


我在谷歌上做了一些研究,但似乎没有什么是合适的,我发现最类似的客户机-服务器同步的例子是“聊天程序”,然而聊天程序本质上很简单,因为一条消息永远不会被修改或删除,你需要保持一致的只是时间顺序。我需要比这更复杂的东西,或者一些关于这个主题的有用提示。

您需要的是服务器和客户端之间的某种消息传递。客户端将长时间轮询服务器,请求更新,或者订阅服务器上的某个流端点

您可以查看模型、长轮询本身等


或者—有两个数据管理服务—或任何类似用途的解决方案。您可以将其中一个集成到应用程序中,并用于整个数据管理周期。

我的应用程序是在Swing中开发的桌面应用程序,因此JavaEE、java FX、WebSocket等都是毫无疑问的:(我认为问题在于存在Comet和websocket的java客户端无论如何,如果你想同步服务器的所有客户端,你需要服务器向它的所有客户端发送通知。因此,你需要以某种方式实现服务器推送。也许,如果你谷歌“java服务器推送”,你会找到适合你的目的的东西。