2013-07-16 59 views
1

場景:谷歌實時API - 何時堅持更改數據庫?

  • 我有多個瀏覽器客戶端,其互聯網連接的速度非常快,以超慢變化。因爲這樣他們可能看不到文檔的相同狀態。

  • 我使用的是Google shortcut file,因爲文檔實際上是存儲在數據庫中的。

  • 將文檔保存到數據庫是從客戶端觸發的。

問題:我怎麼知道哪個客戶端獲得了最新的應該保存到數據庫的最新文檔?

回答

2

你是對的,你不能依賴任何特定的客戶在某個特定的時間是最新的。沒有簡單的方法可以確定,因爲這可以在任何特定時刻改變。 (雖然可以確保你不要看document save state在一個特定的客戶端的任何未保存的更改。)

而不是試圖做到這一點基於客戶端的狀態,您可以使用export capability是的一部分Drive API,它將爲您提供有修改號碼的數據的有效快照,以便您可以跟蹤您擁有的版本。

請注意,這是一個全新的功能,所以它還沒有很好的記錄。響應是一個帶有appId,修訂號的json對象,以及包含該文檔的json版本的數據字段。它看起來像這樣,對於在根中具有協作列表「列表」和協作字符串「文本」的文檔:

{"appId":"788242802491","revision":17, 
"data":{"id":"root","type":"Map", 
    "value":{ 
    "list":{"id":"gde9s8z5khjarls7o","type":"List","value":[]}, 
    "text":{"id":"gdef98qdhiq679af","type":"EditableString","value":"This is a test 2."}}}} 
+0

有效快照來自哪裏?由於我正在使用快捷方式文件,因此沒有數據存儲在中央位置(服務器)中,對嗎? –

+0

實時數據模型始終存儲在服務器上。這對於(除其他之外)用戶能夠稍後回來查看它是必要的。使用快捷方式文件意味着除了實時數據模型本身之外,您不會再存儲任何額外的二進制數據。 (如果你想更好地理解這一切是如何工作的,你可能想看看我們在Google I/O http://www.youtube.com/watch?v=hv14PTbkIs0) –

+0

的幕後談話。我想還有另一個問題,我想存儲這些快捷方式文件多長時間?我假設我不希望他們永遠在一起,所以在最後一個用戶存在實時會話後,我會刪除它們嗎? http://stackoverflow.com/questions/17579739/google-realtime-api-creating-and-removing-shortcut-file-in-google-drive –