2010-07-04 49 views
0

好的,情況如下。將客戶端時間同步到服務器時間,即使客戶端應用程序與本地計算機時間無關

我有一個服務器與服務的遊戲,從服務器的特定命令發送一個時間戳,以便下一輪比賽應該開始。爲了在所有連接的客戶端上完全同步,我還有一個webbservice,它返回服務器當前時間的時間戳。

我所知道的是:發送請求和接收到回覆之間的時間。 我不知道的地方:延遲的位置,客戶端處理或服務器處理或帶寬問題。

在這裏得到合理結果的最佳做法是什麼?我猜GPS必須以某種方式解決這個問題,但我一直無法找到一個好的模式。

我現在所做的是將請求延遲的一半添加到服務器時間戳,但它不夠好。這可能必須這樣做,發送和接收之間的時間可以高達11秒。

對此提出建議?

回答

1

在機器之間同步時間有許多常見的解決方案,包括NTPD與RTP完成正確的PLL實現。如果您可以更改機器的本地時間,這對您很有用。如果不是這樣,也許你應該做更多或更少的工作,但在延遲不合理的情況下丟棄同步點。

+0

感謝您的回答! – Tobias 2010-07-04 19:02:43

+0

感謝您的投票:) – 2010-07-04 19:32:23

+0

事實證明,web服務可能會被迫立即發送答案,所以我們設法將延遲降低到寬容範圍內,phwew ...似乎更容易;) – Tobias 2010-07-05 21:07:45

0

最佳做法通常不是同步絕對時間,而是與相對時間一起工作。

相關問題