私はMeteorサーバーで無期限に実行される20秒のタイマーを持っています。ユーザーのクライアントが接続すると、サーバー上のTimerメソッドからの応答を取得する方法はありますか?基本的に私が達成しようとしているのは、同じタイマーがクライアント上で実行されるのを見るために接続するすべてのユーザーの能力です。クライアントロード時のサーバーメソッドからの応答を取得する - メテオ
私は、クライアントがサーバー上で継続的に実行されているメソッドの出力を取得し、その応答をクライアントに出力したいと考えています。これは可能ですか?
私はサーバー上で実行しているタイマーコードです。
Meteor.methods({
runTimer: function() {
var running = false;
var seconds = 20000; // (1 sec = 1000)
var then; // Timer start time
// ------------------------------------
// Evaluate and route
// ------------------------------------
function router() {
if (!running) {
run();
}
};
// ------------------------------------
// Run the timer
// ------------------------------------
function run() {
running = true;
then = Date.now() + seconds;
var interval = setInterval(function(){
var time = parseTime(then-Date.now());
if (time[0] > 0) {
console.log(time[0] + '.' + time[1]);
} else {
console.log('0.00');
running = false;
clearInterval(interval);
router();
}
}, 51);
};
// ------------------------------------
// Parse time in MS for output
// ------------------------------------
function parseTime(elapsed) {
// Array of time multiples [sec, decimal]
var d = [1000,10];
var time = [];
var i = 0;
while (i < d.length) {
var t = Math.floor(elapsed/d[i]);
// Remove parsed time for next iteration
elapsed -= t*d[i];
t = (i > 0 && t < 10) ? '0' + t : t;
time.push(t);
i++;
}
return time;
};
router();
}
});
51msごとにドキュメントを更新することについてはわかりません... – ghybs