我正在构建一个需要能够脱机存储数据并将其同步到OData服务器的应用程序.在审核视频时,其中一位演示者提到了Concurrency Token- 可以使用此令牌来帮助同步过程吗?如果是这样,我该如何使用它以及我需要注意什么?
有关详细信息,我的目标平台是Android,因此我无法使用Microsoft Sync Framework.
并发令牌(也称为ETag)(根据HTTP RFC)可以设想为实体实例的版本号.每次实体更改时,服务器都会引发此问题.服务器将此实体与实体一起发送到客户端,客户端可以在应用更改时将其发送回服务器(在If-Match标头中).然后,服务器将检查客户端是否具有最新版本,如果是,则应用更改.否则它将无法通知更新请求.它可以通过两种方式帮助您完成同步过程:如果从服务器获取实体并且它具有来自客户端记忆的不同ETag,则服务器实例会更改,因此您可能更新客户端实例或执行某些冲突如果客户进行了更改,则解决 另一种方法是将所有更改从客户端发送到服务器(使用正确的ETag),服务器将使服务器上已更改的所有更改失败.然后,客户端可以从服务器获取新版本,解决冲突并重试.但请注意,除非您的ETag是实体上可公开访问的属性之一,否则没有内置的方法来过滤ETag,因此目前您不能要求服务器从给定版本获取所有实体更改.虽然如果你确实控制了服务,你可能能够这样做(拥有一个全局版本号,并且每个更改都会引发它,并且每个实体都带有对其进行的最后一次更改的版本号,然后您可以对该版本属性进行过滤) .
| 归档时间: |
|
| 查看次数: |
1286 次 |
| 最近记录: |