如何在Meteor中关闭和打开DDP请求?

时间:2014-05-21 10:09:25

标签: javascript meteor

我尝试做的是在Cloudflare的CDN中缓存一个流星站点,让DDP请求转到另一个URL。我有这个工作,但我想做的是这样做,所以在订阅实际需要之前不会发出单个DDP请求。该站点的公共部分使用快速渲染完全呈现,并由CDN缓存(直到我以编程方式清除它)。直到用户登录才需要单个DDP请求,因为快速渲染所有信息都嵌入在CDN缓存页面中。

我认为这个想法很重要:非常受欢迎的公共页面经常(或永远)不会被CDN缓存,没有单个DDP请求浪费资源,直到用户登录,没有选择,只能通过DDP提供动态数据(但也不是资源密集型,因为只有.01%的访问者是注册成员)。

那么如何才能完全控制何时发出DDP请求呢?这是启动流程的典型第一个请求:

http://snapplr.com/e9vt

来自Meteor Hacks的Arunoda推荐以下

"尝试在建立之前断开流星连接。你可以用:

Meteor.default_connection.disconnect()

或者您可以覆盖default_connection的某些方法并强制它不发送数据。尝试检查livedata包的livedata_connection.js。 "

我尝试了disconnect()的东西,但无法让它工作。任何人都有更具体的想法尝试?

1 个答案:

答案 0 :(得分:1)

看起来Meteor.disconnect()就是您所需要的。我现在注意到你说你已经尝试过,但是你的函数调用的签名与最新的文档不匹配。我不确定default_connection的{​​{1}}部分来自哪个。

您的订阅还有stop()功能。如果你需要为每个订阅打电话只是为了实现你所要求的东西,那就太难看了,所以这似乎不太可能,但值得一试。