Meteor 断开连接的流星应用程序

Meteor 断开连接的流星应用程序,meteor,local-storage,Meteor,Local Storage,我对使用Meteor框架创建一个应用程序感兴趣,该应用程序将在很长一段时间(数小时)内与网络断开连接。我相信meteor将本地数据存储在RAM中的一个迷你mongodbjs结构中。如果用户关闭浏览器或刷新页面,则所有本地更改都将丢失。如果将本地更改持久化到磁盘(localStorage?indexedDB?)就更好了。流星号很快就要来了吗 相关问题。。。Meteor如何处理文档冲突?换句话说,如果两个用户编辑同一个MongoDB JSON文档,如何解决冲突?乐观锁定?冲突解决是“最后一个写入程序

我对使用Meteor框架创建一个应用程序感兴趣,该应用程序将在很长一段时间(数小时)内与网络断开连接。我相信meteor将本地数据存储在RAM中的一个迷你mongodb
js
结构中。如果用户关闭浏览器或刷新页面,则所有本地更改都将丢失。如果将本地更改持久化到磁盘(
localStorage
indexedDB
?)就更好了。流星号很快就要来了吗

相关问题。。。Meteor如何处理文档冲突?换句话说,如果两个用户编辑同一个MongoDB JSON文档,如何解决冲突?乐观锁定?

冲突解决是“最后一个写入程序获胜”

更具体地说,客户机上的每个MongoDB插入/更新/删除操作都映射到RPC。来自给定客户端的RPC总是按顺序播放。来自不同客户端的RPC在服务器上交错排列,没有任何特定的订购保证

如果客户端试图在断开连接时发出RPC,则这些RPC将排队等待,直到客户端重新连接,然后按顺序播放到服务器。当多个客户端执行脱机RPC时,它们最终在服务器上运行的顺序在很大程度上取决于每个客户端重新连接的确切时间

对于一些离线突变,如MongoDB的
$inc
$addToSet
,该模型运行良好。但是许多常见的修饰符,如
$set
,在长时间断开连接时不会表现得很好,因为变异可能会与来自其他客户端的干预更改相冲突


因此,构建“离线”应用程序不仅仅是持久化本地数据库。您还需要定义实现某种类型冲突解决的RPC。最终,我们希望有一个能够实现各种解决方案的交钥匙包。

如果meteor可以将OT作为一个包(例如sharejs)添加,那么冲突可能会以更好的方式解决。我很感激第二部分的答案。。在没有无线/无线性能差的世博会上,为收集姓名/电子邮件的平板电脑应用程序提供一个用例如何?在这种情况下,它只是对集合的插入?如何持久化到本地存储,或者甚至需要持久化到本地存储?