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

How to turn off and on DDP requests in Meteor?

本文关键字:DDP 请求 Meteor      更新时间:2023-09-26

我要做的是在Cloudflare的CDN中缓存流星站点,并将DDP请求转到另一个URL。我有工作,但我想做的是使它,所以不是一个单一的DDP请求,直到订阅实际需要它。站点的公共部分完全使用Fast Render渲染,并由CDN缓存(直到我通过编程清除它)。直到用户登录是一个单一的DDP请求所需要的,因为所有的信息都嵌入在CDN缓存页面感谢快速渲染。

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

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

http://snapplr.com/e9vt

流星黑客的Arunoda推荐如下

"尝试在流星连接建立之前断开它。你可以这样做:

Meteor.default_connection.disconnect ()

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

我尝试了断开连接()的东西,但不能让它工作。有人有更具体的想法吗?

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

在订阅中还有一个stop()函数可用。如果您需要为每个订阅调用该方法来实现您的请求,则会有点难看,因此这似乎不太可能,但值得一试。