Eri*_*ver 7 collaboration conflict etherpad meteor
查看Meteor以创建协作文档编辑应用程序,因为默认情况下Meteor在多个客户端之间同步数据非常棒.
但是当使用文本区域时,例如Sameer Kalburgi的例子
http://www.skalb.com/2012/04/16/creating-a-document-sharing-site-with-meteor-js/
http:// docshare -tutorial.meteor.com/
经验是次优的.
我试图与同事同时输入,当我输入时我的更改会被覆盖,反之亦然.所以在冲突解决方案中还没有合并算法,我想呢?
这是否计划用于该功能?目前有没有办法实现这个目标?Etherpad似乎很好地处理了这个问题.在Meteor中实现这一点将使创建协作文档编辑应用程序变得更容易访问.
所以我再研究一下,Etherpad中使用的算法称为操作转换:
解决方案是运营转型(OT).如果您还没有听说过,OT是一类可以实现多站点实时并发的算法.OT就像实时的git.它适用于任何滞后量(从零到延长的假期).它允许用户以低带宽进行实时,并发编辑.OT为您提供多个用户之间的最终一致性,无需重试,没有错误,也没有任何数据被覆盖.
不幸的是,实施OT很糟糕.有一百万种算法有不同的权衡,大多数都被学术论文所困.算法实现起来非常困难且耗时.我们需要一些好的库,所以任何项目都可以在需要时插入OT.
这是来自sharejs的网站.基于node.js的服务器客户端,您可以挂钩到现有客户端.
OT也在Node.js的Racer模型同步引擎中实现,它构成了Derby的基础.目前,derby.js尚未透明地提供它,但他们也计划从Derby文档:
目前,Racer默认按照收到的顺序应用所有交易,即last-writer-wins.(...)Racer [也]通过软件事务内存(STM),操作转换(OT)和Diff-match-patch技术的组合来支持冲突解决.
这些功能尚未完全实现,但Racer演示展示了STM和OT的初步示例.
巧合的是,sharejs和derbyjs团队都有一个前谷歌摇摆人.Meteor的核心团队中有一个ex etherpad/Google Waver.由于Etherpad是最着名的OT实现之一,我想象Meteor肯定也想在某些时候支持它......
你所描述的似乎超出了 Meteors 的范围。它不是建立协作可能性的工具!
它提供了一种透明地处理服务器数据库子集的方法。但是特定于用例的合并功能的实现是应用程序的工作,而不是框架的工作。