跨两个Java应用程序的纯文本同步编辑



好吧,在过去的几天里,我一直在研究如何做到这一点,但我还没有真正找到解决方案或示例。基本上,我设置了一个服务器/客户机系统,这样我就可以在两个Java应用程序之间发送和接收文本。我只是想不出如何让这些文本彼此保持同步。(类似Google Docs)

如果有人能指出我在正确的方向或显示/链接我一个例子,这将是非常感激的。

暴力破解的方法是在文本更新时发送整个文本blob,并让另一方同步。

这种方法有两个主要问题:

  1. 如果文本团非常非常大那么就会有冗余的数据来回发送
  2. 如果双方同时进行许多更改,可能会出现合并问题,特别是如果他们正在编辑文本的完全相同区域

第二个问题可以通过某种形式的确认回复来缓解,这样您就可以知道更新的blob是否在另一端被"接受"。这样,双方就可以对数据的有效状态保持"一致"。然而,如果双方都不承认对方的变化(无论出于何种原因),这种关系仍然可能破裂。

我能想到的唯一一个一般的想法是利用一些版本控制系统使用的库,比如SVN或GIT。它们可能有很好的差异和合并功能,可以使更新更容易。只发送差异也可以缓解上述问题#1。

最新更新