我正在構建一個需要能夠脫機存儲數據並將其同步到OData服務器的應用程序。在審查視頻時,其中一位演示者提到了Concurrency Token
--該令牌是否可用於幫助進行同步?如果是這樣,我該如何使用它,以及我需要注意什麼?OData&併發令牌
有關更多信息,我的目標平臺是Android,所以我無法使用Microsoft Sync Framework。
我正在構建一個需要能夠脫機存儲數據並將其同步到OData服務器的應用程序。在審查視頻時,其中一位演示者提到了Concurrency Token
--該令牌是否可用於幫助進行同步?如果是這樣,我該如何使用它,以及我需要注意什麼?OData&併發令牌
有關更多信息,我的目標平臺是Android,所以我無法使用Microsoft Sync Framework。
併發令牌,也稱爲ETag(按照HTTP RFC)可以被想象爲實體實例的版本號。每當實體發生變化時,服務器都會引發這種情況。服務器將此與實體一起發送給客戶端,客戶端可以在應用更改時將其發送回服務器(在If-Match標頭中)。然後服務器將檢查客戶端是否具有最新版本,如果是,則應用更改。否則它會失敗更新請求。 它可以通過兩種方式幫助您完成同步過程: 如果您從服務器獲得一個實體,並且它與您的客戶端記住的內容有不同的ETag,則服務器實例chas將發生更改,因此您可以更新客戶端實例或執行如果客戶進行了更改,可以解決一些衝突 另一種方式是將所有更改從客戶端發送到服務器(使用正確的ETags),並且服務器將會使服務器上已經更改的所有更改失敗。然後客戶端可以從服務器獲取新版本,解決衝突並再次嘗試。 請注意,除非您的ETag是實體上的公共可訪問屬性之一,否則不會在ETag上過濾內置方式,因此目前您無法要求服務器在給定給定的情況下更改所有實體版。雖然如果您確實控制了服務,您可能會這樣做(具有全局版本號,每次更改都會引發該更改並且每個實體都攜帶最後一次更改的版本號,然後您可以在該版本屬性上進行過濾) 。