Etherpad的时间线function如何工作?

我想了解Etherpad的时间线function如何工作。

如果你不知道这里的etherpad软件是它的实现 – http://piratepad.net/

做一些编辑,写一些东西,大胆地使用编辑器,然后在右上angular你会看到时间表。 点击并播放它。

我可以看到像这样的JSON响应 – 但任何人都可以把它分解成一些可理解的东西。

这是从它的Node.js端口的一段代码 – https://github.com/Pita/etherpad-lite/blob/master/src/node/handler/TimesliderMessageHandler.js#L359

我非常有兴趣了解JSON响应及其工作原理。 另外什么数据库是最适合这种应用程序(etherpad,谷歌文档等)。 Nosql(如mongodb)或sql(如mysql)。

在时间滑块上拖动时,相关更改将从服务器发送到客户端。

更改编码为编辑现有文档内容以成为新文档内容的指令。 请参阅https://github.com/ether/etherpad-lite/wiki/Changeset-Library

原来的描述是: https : //github.com/ether/pad/blob/master/infrastructure/ace/easysync-notes.txt

Etherpad主要运行在SQL上。 也许有其他DB:S的实验,但是对于etherpad最重要的是读取/写入变更集的原始表。 关系数据库可能是性能和理智的最佳select。 MySQL是etherpad的默认值。 Postgres一直在努力。 数据库表的列表,请参见http://appolo85.wordpress.com/2010/03/22/first-steps-understanding-etherpad/

(所以nosqltypes的数据库不是一个好主意,如果mysql对你来说太无聊了,也许可以尝试一下所有的内存数据库来获得一个很好的速度提升,另外请注意,在一个强大的服务器上运行java + scala的普通etherpad ,如果你想设置你自己的服务器,这可能是你的主要障碍。)