Meteor中每个时间间隔的发布/订阅
我的情况如下: 我在Mongo中有一个集合,它每隔几毫秒就会更新一次新的项,例如日志项。我通过模板中的“发布/订阅”在前端显示这些项目,但由于数量太大,列表更新太频繁,很难阅读。我希望列表每(几)秒更新一次。例如,我尝试在客户端和服务器端使用睡眠/超时,但迄今为止没有成功Meteor中每个时间间隔的发布/订阅,meteor,publish-subscribe,reactive,Meteor,Publish Subscribe,Reactive,我的情况如下: 我在Mongo中有一个集合,它每隔几毫秒就会更新一次新的项,例如日志项。我通过模板中的“发布/订阅”在前端显示这些项目,但由于数量太大,列表更新太频繁,很难阅读。我希望列表每(几)秒更新一次。例如,我尝试在客户端和服务器端使用睡眠/超时,但迄今为止没有成功 我仍然可以使用发布/订阅,还是应该使用Meteor.setInterval切换轮询机制 时间间隔部分是在发布端还是在订阅端 如果发布/订阅对于我的场景是正确的,那么如何仅每隔几秒钟显示更新的数据 DDP有一个速率限制器。这是
- 我仍然可以使用发布/订阅,还是应该使用Meteor.setInterval切换轮询机制
- 时间间隔部分是在发布端还是在订阅端
- 如果发布/订阅对于我的场景是正确的,那么如何仅每隔几秒钟显示更新的数据
- DDP有一个速率限制器。这是为了打败DDoS攻击,但我认为它可以根据您的需要重新调整用途
DDP有一个速率限制器。这是为了打败DDoS攻击,但我认为它可以根据您的需要重新调整用途
您应该能够在Template.name.onCreated中使用反应变量和自动运行来执行此操作:
Template.name.onCreated(function(){
var instance = this;
instance.now = new ReactiveVar( new Date());
instance.autorun(function(){
var test = now.get();
instance.subscribe('yourSubNameHere');
setTimeout(function(){ //will update now and fire the autorun again
instance.now.set(new Date());
},timeoutHere)
});
)};
虽然如果您的收藏量越来越大,我建议您在出版物中进行此操作,但可能会有限制?您应该能够在模板中使用反应变量并自动运行。name.onCreated可执行此操作:
Template.name.onCreated(function(){
var instance = this;
instance.now = new ReactiveVar( new Date());
instance.autorun(function(){
var test = now.get();
instance.subscribe('yourSubNameHere');
setTimeout(function(){ //will update now and fire the autorun again
instance.now.set(new Date());
},timeoutHere)
});
)};
尽管如果你的收藏量越来越大,我还是建议在你的出版物中限制这一点,也许吧?我不明白这是怎么回事。这不就是继续重新订阅吗?您的文档是在客户端还是服务器端添加的?我不明白重新订阅如何解决OP的问题。如果我理解正确的话,他的数据在第一次订阅时来得太快了。因此,我试图了解后续如何重新订阅帮助。不用担心!我一直在问,因为我想知道订阅是否有一些隐藏的功能需要注意。我不明白这是怎么回事。这不就是继续重新订阅吗?您的文档是在客户端还是服务器端添加的?我不明白重新订阅如何解决OP的问题。如果我理解正确的话,他的数据在第一次订阅时来得太快了。因此,我试图了解后续如何重新订阅帮助。不用担心!我一直在问,因为我想知道订阅中是否有一些隐藏的功能我需要注意。你试过收集观察员吗?在文档添加到集合时追加列表?它不应该重新更新您的整个列表。您是否尝试过收集观察员?在文档添加到集合时追加列表?它不应该重新更新你的全部清单。