2015-01-20 52 views
0

我想在我的網頁上顯示實時服務器時間,想知道我是否可以定期(每1秒)使用socket.emit?如果我確實使用它,那麼對性能的影響是什麼?socket io節點js每秒鐘獲得服務器時間性能

或者,我可以簡單地從服務器獲取一次時區,並使用瀏覽器的日期對象獲取當前時間並將時區轉換爲實時顯示。但是,在這種情況下,我假設我的服務器的日期時間設置已正確配置。

基本上,我只是想知道什麼是服務器/客戶端的性能影響時,我跑socket.emit使用的setInterval

回答

1

有一個在發送服務器的時間不斷沒有點每隔1秒。只需時間往返數據包,發送一次服務器時間,添加傳輸時間,然後將服務器時間與本地時間進行比較以創建偏移量。然後,只需使用當地時間+從那時起的偏移量。它至少會像不斷髮送服務器時間一樣準確,並且效率更高。

這個想法是客戶端時鐘和服務器時鐘以相同的速度運行,因此您只需要知道兩者之間的偏移量,然後就可以使用客戶端時鐘加偏移量。


發送一個小的消息,每秒一個客戶對性能的影響可能是沒什麼大不了的,但如果你有大量的連接的客戶端,就可以開始很顯著,進一步可能導致每個時間之間的延遲客戶端發送數據包,從而使發送的時間不準確。

+0

謝謝。你是對的。節點js + socket.io岩石:) – abarik 2015-01-21 04:37:08