我尝试做的是在Cloudflare的CDN中缓存一个流星站点,让DDP请求转到另一个URL。我有这个工作,但我想做的是这样做,所以在订阅实际需要之前不会发出单个DDP请求。该站点的公共部分使用快速渲染完全呈现,并由CDN缓存(直到我以编程方式清除它)。直到用户登录才需要单个DDP请求,因为快速渲染所有信息都嵌入在CDN缓存页面中。
我认为这个想法很重要:非常受欢迎的公共页面经常(或永远)不会被CDN缓存,没有单个DDP请求浪费资源,直到用户登录,没有选择,只能通过DDP提供动态数据(但也不是资源密集型,因为只有.01%的访问者是注册成员)。
那么如何才能完全控制何时发出DDP请求呢?这是启动流程的典型第一个请求:
来自Meteor Hacks的Arunoda推荐以下"尝试在建立之前断开流星连接。你可以用:
Meteor.default_connection.disconnect()
或者您可以覆盖default_connection的某些方法并强制它不发送数据。尝试检查livedata包的livedata_connection.js。 "
我尝试了disconnect()的东西,但无法让它工作。任何人都有更具体的想法尝试?
答案 0 :(得分:1)
看起来Meteor.disconnect()就是您所需要的。我现在注意到你说你已经尝试过,但是你的函数调用的签名与最新的文档不匹配。我不确定default_connection
的{{1}}部分来自哪个。
您的订阅还有stop()功能。如果你需要为每个订阅打电话只是为了实现你所要求的东西,那就太难看了,所以这似乎不太可能,但值得一试。