1
我正在開發即時消息應用程序,該應用程序使用消息ID,消息內容和排序時間戳的列記錄數據庫中的每條消息。來自客戶端的時間戳
在插入到數據庫之前,我一直使用PHP的time()函數添加時間戳,但是在我看來,這可能會導致問題。如果用戶快速提交兩條或更多條消息,則服務器可能會將它們亂序處理,並將它們混淆在數據庫中。
我正在考慮使用javascript的Date.getTime()方法。這種方式的時間戳記錄了用戶提交信息的時間,而不是它處理完成的時間(希望這兩個數字不是那不同)。
這帶來了兩個問題:
- 的數據可能被操縱。我必須仍然使用PHP的time()函數,並且只在彼此在一分鐘左右時間內提交(這不是一個完美的解決方案)。
- 我真的不知道計算機的時間如何同步。提交的時間看起來像是用戶在中國的時間是多少?
我確定這是一個始終處理的問題。那裏有什麼樣的解決方案?
由於時區差異,不準確的時間同步和數據操作,您應該只能使用服務器時間。就消息順序而言,您可以簡單地發送遞增順序或順序與消息一起確定消息線程中的順序。 – joe42