我想做的是在Cloudflare的CDN中缓存一个 meteor 站点,并让DDP请求转到另一个URL。我已经完成了工作,但是我想做的是让它完成,因此在订阅真正需要它之前,不会发出单个DDP请求。该网站的公共(public)部分完全由Fast Render渲染,并由CDN缓存(直到我以编程方式将其清除)。直到用户登录时,才需要单个DDP请求,这是由于快速渲染,所有信息都嵌入在CDN缓存的页面中。
我认为这里的想法很重要:CDN缓存了非常流行的,很少更改(或从未更改)的公共(public)页面,而没有单个DDP请求浪费资源直到用户登录,这时别无选择但可以通过DDP提供动态数据(但也不占用资源,因为只有0.01%的访问者是注册成员)。
因此,如何才能完全控制何时发出DDP请求?这是启动该过程的典型第一个请求:
http://snapplr.com/e9vt
Meteor Hacks的Arunoda建议了以下内容
“在建立 meteor 连接之前,请尝试断开它的连接。您可以执行以下操作:
Meteor.default_connection.disconnect()
或者,您可以覆盖default_connection的某些方法,并强制其不发送数据。尝试检查livedata包的livedata_connection.js。
”
我尝试了connect()东西,但无法正常工作。有人对尝试的事情有更具体的想法吗?
最佳答案
看起来Meteor.disconnect()是您所需要的。现在我注意到您说您已经尝试过了,但是函数调用的签名与最新文档不匹配。我不确定default_connection
的Meteor.default_connection.disconnect()
部分来自何处。
您的订阅上还有一个stop()函数。如果您需要为每个订阅都调用它只是为了达到您的要求,这将有点麻烦,因此这似乎不太可能,但值得一试。