2011-03-16 97 views
2

我有一個應用程序組成的服務器,它偶爾會向Iphone發送消息。這兩個設備之間的延遲對於問題域非常重要 - 如果郵件到達時間不到一秒鐘,一切正常;如果需要超過5秒鐘,幾乎肯定會有問題。服務器端消息使用服務器時間標記時間。如何比較Iphone和(網絡)服務器之間的時間?

使用蜂窩數據連接,我們看到偶爾會出現延遲,但我們無法量化它們,因爲不能保證Iphone的時鐘與服務器同步;一個我們的測試手機,我們看到不同運營商的不同時間。

有沒有簡單的方法來同步Iphone和服務器之間的時間?我看過(S)NTP,這似乎是正確的路要走。

任何替代品?我們只需要在幾秒鐘內準確,而不是毫秒。

回答

1

我不知道確切的情況是什麼,所以這可能是一個無解,但:

。假定你想找出手機與服務器之間的延遲時間(也只有這個)以設定的時間間隔(由服務器決定)。假定錯誤檢查是在服務器端完成的,而不是同步時鐘,那麼你可以使用「ping」方法。

  • 服務器ping客戶端iPhone,並啓動一個秒錶。
  • 客戶端立即ping服務器。
  • 只要客戶端ping到達服務器,服務器就會停止秒錶並檢查時間。

如果我誤解了你的問題,道歉。

1

那麼,一個稍微簡單的解決方案是,你可以讓手機告訴服務器他們在不同時間什麼時間,並保留一個數據庫表的增量。然後將您報告的時間戳調整爲服務時間r +/-三角洲。就我所知,iPhone同步到運營商的時間服務器。另一種可能性是讓電話和服務器每天都查詢一個共同的時間源。時間不太可能在一天內變化很大。

相關問題