为了节省服务器带宽,我想在一段时间后停止流星中的DDP ping,并在重新获得用户关注时手动刷新页面。 DDP ping是否可配置?我可以暂时停下来吗?
编辑:
DDPRateLimiter也可以保存一些带宽,但它不会停止 http://docs.meteor.com/api/methods.html#ddpratelimiter
答案 0 :(得分:2)
使用技巧described here如果浏览器“{1}},您可以致电Meteor.disconnect()
窗口或标签失去焦点,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();
}
});