我想实施多用户 操作转换 仅适用于网站上的服务器端的基于普通文本的更改。

您是否可以推荐非JavaScript实现?

有帮助吗?

解决方案

考虑Google-Diff-Match-Patch-diff,纯文本的匹配和补丁库:

“差异匹配和补丁库提供了强大的算法,以执行同步纯文本所需的操作。”

差异:比较两个纯文本的块,并有效返回差异列表。

DIFF演示匹配:给定搜索字符串,在纯文本块中找到最佳模糊匹配。为精度和位置加权。

匹配演示补丁:将补丁列表应用于纯文本。即使基础文本不匹配,也要使用最佳效果应用补丁。

Patch Demo当前可在Java,JavaScript,C ++,C#,Objective C,Lua和Python提供。无论语言如何,每个库都具有相同的API和相同的功能。所有版本还具有全面的测试安全带。

你可以找到它 这里.

其他提示

考虑py-Infinote。

Py-Infinote是Jinfinote的Python港口,提供了协作文本编辑协议(采用),可用于编写多用户协作文本编辑器。 PY-Infinote用于HWIOS项目。

https://github.com/sveith/jinfinote

这是另一个非常有趣的实现,将Google Wave的运营转换与Jedit集成:

https://github.com/djspiewak/cccp

OpenCoweb是一种流行的OT实现。有几种用不同语言编写的服务器实现。

简单的参考实现,我将通过添加更多复杂的内容来改进接下来的几个月;

现在它有:

  • 简单的文本操作;保留,插入,删除及其相互对抗
  • 文本和转换的注释
  • 产生更改并将其应用于文本

https://github.com/slevental/operational-transformation

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top