Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor中每个时间间隔的发布/订阅_Meteor_Publish Subscribe_Reactive - Fatal编程技术网

Meteor中每个时间间隔的发布/订阅

Meteor中每个时间间隔的发布/订阅,meteor,publish-subscribe,reactive,Meteor,Publish Subscribe,Reactive,我的情况如下: 我在Mongo中有一个集合,它每隔几毫秒就会更新一次新的项,例如日志项。我通过模板中的“发布/订阅”在前端显示这些项目,但由于数量太大,列表更新太频繁,很难阅读。我希望列表每(几)秒更新一次。例如,我尝试在客户端和服务器端使用睡眠/超时,但迄今为止没有成功 我仍然可以使用发布/订阅,还是应该使用Meteor.setInterval切换轮询机制 时间间隔部分是在发布端还是在订阅端 如果发布/订阅对于我的场景是正确的,那么如何仅每隔几秒钟显示更新的数据 DDP有一个速率限制器。这是

我的情况如下: 我在Mongo中有一个集合,它每隔几毫秒就会更新一次新的项,例如日志项。我通过模板中的“发布/订阅”在前端显示这些项目,但由于数量太大,列表更新太频繁,很难阅读。我希望列表每(几)秒更新一次。例如,我尝试在客户端和服务器端使用睡眠/超时,但迄今为止没有成功

  • 我仍然可以使用发布/订阅,还是应该使用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的问题。如果我理解正确的话,他的数据在第一次订阅时来得太快了。因此,我试图了解后续如何重新订阅帮助。不用担心!我一直在问,因为我想知道订阅中是否有一些隐藏的功能我需要注意。你试过收集观察员吗?在文档添加到集合时追加列表?它不应该重新更新您的整个列表。您是否尝试过收集观察员?在文档添加到集合时追加列表?它不应该重新更新你的全部清单。