2017-05-22 12 views
2

サーバの帯域幅を節約するために、ある一定の時間が経過した後、流星の中でDDPのpingを停止し、ユーザのフォーカスを回復した場合は手動でページをリフレッシュしたいと思います。 DDP pingは設定可能ですか?しばらくしてから止めることができますか?しばらくしてからMeteor DDP pingを停止することはできますか?

EDIT:

DDPRateLimiterはまた、いくつかの帯域幅を節約することができますが、ブラウザ場合described hereあなたがMeteor.disconnect()を呼び出すことができ、それは技術を使用して http://docs.meteor.com/api/methods.html#ddpratelimiter

答えて

2

止まらないだろう」ウィンドウまたはタブがフォーカスを失って、Meteor.reconnect()ブラウザのウィンドウまたはタブに再度フォーカスがあります。

サンプルコード:

import { $ }   from 'meteor/jquery'; 
import { Meteor }  from 'meteor/meteor'; 

/* @description Set right visibilitychange event and property names */ 
const hidden = {}; 
hidden.str = false; 
hidden.evt = void 0; 

if (typeof document.hidden !== 'undefined') { 
    hidden.str = 'hidden'; 
    hidden.evt = 'visibilitychange'; 
} else if (typeof document.mozHidden !== 'undefined') { 
    hidden.str = 'mozHidden'; 
    hidden.evt = 'mozvisibilitychange'; 
} else if (typeof document.msHidden !== 'undefined') { 
    hidden.str = 'msHidden'; 
    hidden.evt = 'msvisibilitychange'; 
} else if (typeof document.webkitHidden !== 'undefined') { 
    hidden.str = 'webkitHidden'; 
    hidden.evt = 'webkitvisibilitychange'; 
} 

hidden.check =() => { 
    return document[hidden.str]; 
}; 

$(document).on(hidden.evt,() => { 
    if (hidden.check()) { 
    Meteor.disconnect(); 
    } else { 
    Meteor.reconnect(); 
    } 
}); 
+1

これは、トリックを行い、同じ文脈で、それは帯域幅を節約するためにDDPRateLimiterを言及する価値がある:http://docs.meteor.com/api/methods.html#ddpratelimiter – ApriOri

関連する問題