2011-03-12 123 views
3

我正在研究iPhone上的遊戲,該遊戲將使用SimpleDB進行遊戲數據存儲,我希望能夠超時某些數據庫條目。SimpleDB時間戳插入

我想我會有一些cron工作,看看每個條目的時間戳,如果它的增量大於X我會超時該條目(改變它的var,所以它可以再次可供選擇由用戶)。

我的問題是我不知道如何統一時間戳。如果用戶的系統時鐘被搞砸了,並且關閉了幾個小時甚至幾天,我該怎麼辦?我想要的是當我插入時從SimpleDB服務器獲取系統時間,但我相信我讀了SimpleDB不提供任何形式的時間戳。

我目前唯一的想法是讓所有的客戶端在啓動時從一些隨機的在線源獲得一個時間戳,然後確定基於時間和系統時間戳的時間戳,但是我更希望將這個內部保存到我的程序和AWS服務器,因爲我不能保證什麼時候會提供第三方時間戳源。

任何人都可以爲這個問題提出解決方案,或者提醒我一個由AWS服務器維護的可訪問時間戳嗎?我仍然處於設計階段,所以我沒有對AWS消息做過多的工作,他們的響應數據包是否可能包含某個地方的時間?

謝謝! -Skyler

回答

3

我的建議是有一箇中間web服務(可能坐在一個EC2實例)處理你的iPhone應用程序和SimpleDB之間的所有通信。

這可以解決您的問題,因爲現在中間Web服務器可以添加一致的時間戳。

但是......更重要的是,這解決了您使用AWS密鑰(現在他們生活在您控制的服務器上)的安全問題。你真的不想讓他們嵌入你的iPhone應用程序... :-)

+0

大鼠我希望避免這種情況,但我想知道保護AWS密鑰,所以我想它是更好的;) – Skyler 2011-03-24 18:31:22

1

同意Scrappydog - 你可能需要中間件來保護你的AWS密鑰。看一看:

https://github.com/apetresc/awskeyserver

的證明在概念的解決方案。這使用GAE,它也可以爲您提供穩定的時間源。