一段时间后可以停止Meteor DDP ping吗?

时间:2017-05-22 16:14:24

标签: meteor

为了节省服务器带宽,我想在一段时间后停止流星中的DDP ping,并在重新获得用户关注时手动刷新页面。 DDP ping是否可配置?我可以暂时停下来吗?

编辑:

DDPRateLimiter也可以保存一些带宽,但它不会停止 http://docs.meteor.com/api/methods.html#ddpratelimiter

1 个答案:

答案 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();
  }
});