10

Meteor.js 是否支持操作转换?

我正在做一个与 Etherpad 相关的项目,我想使用 Meteor.js(我认为它非常适合这种项目)。如果我想让它可扩展,那么运营转型对我的项目来说非常重要。我目前的知识表明,meteor 不支持开箱即用的操作转换(如果我在这里错了,请纠正我)。所以基本上我的问题是如何在meteor.js中实现操作转换?

我尝试使用Neil Fraser的这个库google-diff-match-patch,但是在应用补丁时遇到了问题(尽管它很容易在meteor.js 之外工作)。

那么有什么建议吗?

4

2 回答 2

4

在看到几个 Meteor 项目使用 OT(即http://cocodojo.meteor.com/)后,我决定进行适当的集成。

我创建了一个智能包来将 ShareJS 集成到流星中。请来看看并添加您的拉取请求:https ://github.com/mizzao/meteor-sharejs

演示应用程序:http ://documents.meteor.com

于 2013-06-20T14:32:26.870 回答
1

浏览器内协同文本编辑器有两个主要组成部分:文本区域本身,它必须能够很好地协调用户的输入与从服务器接收到的其他编辑;以及用于发送、接收和组合这些编辑的数据模型。

今天的 Meteor 并没有为这些事情提供特别的帮助,但它确实提供了实时数据传输,以及一种在客户端和服务器之间自动移动数据的方法。

如果我要在 Meteor 上实现 EtherPad,我一直认为我会使用一个集合作为“操作日志”。用户更改将被发送到服务器,在那里它们将被附加到正式的操作日志(基本上是差异)中,该日志将自动流式传输到所有客户端。客户端将负责应用传入的差异并将它们与尚未被服务器确认的类型进行协调。

这是一个艰巨的实施挑战。祝你好运!

于 2012-12-14T01:47:44.070 回答