node.jsをプラットフォームとするappjsでチャットアプリを開発しています。コンピューターがアイドル状態のとき (ユーザーがコンピューターから離れているとき、またはコンピューターを使用していないとき) を検出することに固執しています。
node.js には os モジュールがあり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 } }
]
それで、ユーザーのアイドル状態を検出するのに適していますか? 私が理解しているように、使用できる値は と の 2 つuser
ですidle
。idle
値は非常に速く繰り返されますが、1user
つは混沌とした方法で繰り返されます。私が探しているのは、ユーザーがマウスを動かしていないとき、またはアプリケーションで入力していないとき (私のアプリだけでなく) を知ることです。彼が戻ってきたら、「オンライン」に戻します。それを行う方法をいくつか教えてください。または、コード例をドロップしてください。前もって感謝します。
編集。 私が知っているように、各 OS にはユーザーがアイドル状態であることを検出するための API があります。たとえば、プラットフォームとしての Adobe Air にはそれを簡単に行う機能があり、node-ffi を使用したり、モジュールを作成したりすることもできます。さらに、私が知っているように、Chromium もすぐに使用できるこの機能を備えています。