我正在开发一个使用node.js作为平台的appjs的聊天应用程序。当计算机处于空闲状态时(用户离开或不使用它时),我感到困惑。使用node.js os.cpus()检测用户空闲时间?
有os模块中的node.js及其os.cpus()
提供每个芯这样的信息:
[ { model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 252020,
nice: 0,
sys: 30340,
idle: 1070356870,
irq: 0 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 306960,
nice: 0,
sys: 26980,
idle: 1071569080,
irq: 0 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 248450,
nice: 0,
sys: 21750,
idle: 1070919370,
irq: 0 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 256880,
nice: 0,
sys: 19430,
idle: 1070905480,
irq: 20 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 511580,
nice: 20,
sys: 40900,
idle: 1070842510,
irq: 0 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 291660,
nice: 0,
sys: 34360,
idle: 1070888000,
irq: 10 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 308260,
nice: 0,
sys: 55410,
idle: 1071129970,
irq: 880 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 266450,
nice: 1480,
sys: 34920,
idle: 1072572010,
irq: 30 } }
]
所以它适合用于检测用户空闲?据我了解,我可以使用两个值:user
和idle
。 idle
值的迭代速度非常快,但user
迭代的方式非常混乱。我在寻找的是知道用户何时不移动鼠标或输入任何应用程序(不仅仅是在我的应用程序中),并且在某些不活动的阈值超时(例如60秒)之后,我需要将他的状态更改为“离开”当他回来时将它改回“在线”。你能指点我一些alghorithm如何做到这一点,甚至为我删除一些代码示例? 在此先感谢。
编辑。 据我所知,每个操作系统都有API来检测用户是否处于空闲状态,例如Adobe Air作为平台有能力轻松实现,我知道我可以使用node-ffi甚至编写一个模块。此外,据我所知,铬也有这种能力out of the box。
帮助我们帮助您,为什么nodejs应用程序会在整个计算机空闲时关心?最后的结局是什么?可能有更好的方法去做你所忽视的事情,因为你已经习惯了这种特殊的方法。 – jcolebrand 2013-04-08 18:33:48
我想简单地确定聊天应用程序用户何时离开计算机,甚至没有浏览网页或在MS Word中输入内容,以便我可以将他的状态设置为“离开”,以及何时他将状态恢复为“在线”。 .. – moogeek 2013-04-09 20:19:35
作为一个网络应用程序,如果我只是不经常使用该应用程序,我希望它将我的状态设置为离开。就像StackExchange聊天工作方式一样,当我从15分钟的聊天中消失时,我在标签本身显示为“离开”。 – jcolebrand 2013-04-09 22:02:42