Node.JS精确计时器

时间:2011-11-25 00:05:04

标签: javascript node.js timer

如何创建Node.JS准确计时器?它应该看起来像厨房定时器或秒表。

我需要尽可能准确。该应用程序将促进某种"点击战争"。我需要存储每个(并发)用户的点击,注意秒和毫秒(以打平游戏)。

我该怎么办?是否有一些代码示例?

提前致谢。

1 个答案:

答案 0 :(得分: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(),它将返回一个数组,其中包含过去的相对秒和纳秒。