2011-11-25 102 views
3

如何創建Node.JS精確定時器?它應該看起來像廚房計時器或秒錶。Node.JS精確定時器

我需要儘可能的準確性。該應用程序將促進某種「點擊戰爭」。我需要存儲每個(併發)用戶的點擊,注意秒和毫秒(以配合遊戲)。

我該怎麼辦?有一些代碼示例嗎?

在此先感謝。

+1

值得一提的新的本地API它http://nodejs.org/api/process.html#process_process_hrtime - 請參閱可能的用法鏈接 –

回答

23

那麼你應該看看microtime模塊,它給你的時間精確到微秒。你甚至可以用它來測量CPU的時鐘週期!

至於代碼,你可以做這樣的事情(將時間存儲在對象中,然後使用user id訪問它們,如果用戶名是已知的):

var microtime = require('microtime'); 
    , clicks = {}; 

click(function(user){ // An event listener for received clicks 
    clicks[user] = microtime.now(); 
}); 

或(推動所有陣列中的,好處是,它可以被排序,並且容易所有這些被迭代)

var microtime = require('microtime'); 
    , clicks = []; 

click(function(user){ // An event listener for received clicks 
    clicks.push({ 
    user : user, 
    time : microtime.now() 
    }); 
}); 

作爲節點v0.8.0可以的使用process.hrtime()這將返回一個數組包含相對於過去的相對秒數和納秒。

+0

非常感謝你! – sonnuforevis

+0

我會試試這段代碼;) – sonnuforevis