javascript中复制对象的乐观同步

Posted

技术标签:

【中文标题】javascript中复制对象的乐观同步【英文标题】:Optimistic synchronization of replicated objects in javascript 【发布时间】:2011-09-20 10:59:49 【问题描述】:

我正在编写一个浏览器应用程序(首选 html5+websockets+css3+js),它使用户能够同时访问(读取、写入)同一对象的属性。为了创建实时体验,我想使用乐观同步。我阅读了有关 Timewarp 和 Trailing State 算法的文章,我想知道是否有一个 javascript 库已经实现了这些或类似的算法。

我找到了这个question,但不幸的是它还没有得到答复。 XSTM 似乎只支持悲观同步。

你对我有什么想法吗?

【问题讨论】:

【参考方案1】:

我现在也在开发一个实时 HTML5 网络浏览器应用程序。也许我对武器的选择可以激发你的灵感……谁知道呢,所以我正在使用: 前端:

KnockoutJS - 它负责显示我以 JSON(视图模型)发送给每个连接的客户端的数据,您可以轻松订阅客户端数据的更改并将更改推送回服务器,尽管我在显示页面时遇到问题移动浏览器上的 knockoutjs 在服务器端,我运行基于Fleck 的定制服务器 由于 JSON 是我最喜欢的数据格式,我放弃了 SQL 数据库,转而使用 [RavenDB][2],它几乎完全按照通过 websocket 协议发送的数据存储数据,而且速度非常快

【讨论】:

KnockoutJS 和 Fleck 是不错的工具,但我根本看不出它们如何解决同步问题。自从我提出问题后,我了解到社区支持基于 OT 的算法。要将基于图形和树的 OT 的相当科学的努力移植到网络世界中,仍有工作要做。但是,这可能会奏效。

以上是关于javascript中复制对象的乐观同步的主要内容,如果未能解决你的问题,请参考以下文章

Java中“this”或私有对象的同步? [复制]

方法同步与对象同步有啥不同? [复制]

JavaScript 如何从复制的对象中删除键? [复制]

JavaScript 如何从复制的对象中删除键? [复制]

要同步哪些对象?为啥局部变量不好? [复制]

在javascript中将对象数组复制到另一个数组中(深度复制)