Meteor 有可能在一段时间后停止流星DDP ping吗?
为了节省服务器带宽,我想在一段时间后停止meteor中的DDP ping,并在重新获得用户焦点时手动刷新页面。 DDP ping是否可配置?过一会儿我能停下来吗 编辑: DDPRateLimiter也可以拯救一些bandwith,但它不会停止 使用该技术,如果浏览器的窗口或选项卡失去焦点,您可以调用Meteor 有可能在一段时间后停止流星DDP ping吗?,meteor,Meteor,为了节省服务器带宽,我想在一段时间后停止meteor中的DDP ping,并在重新获得用户焦点时手动刷新页面。 DDP ping是否可配置?过一会儿我能停下来吗 编辑: DDPRateLimiter也可以拯救一些bandwith,但它不会停止 使用该技术,如果浏览器的窗口或选项卡失去焦点,您可以调用Meteor.disconnect(),当浏览器的窗口或选项卡再次处于焦点时,您可以调用Meteor.reconnect() 示例代码: import { $ } from 'me
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();
}
});
在同样的情况下,值得一提的是DDPRateLimiter可以节省带宽: