1

私の状況は次のとおりです。ログ項目など、数ミリ秒ごとに新しい項目で更新されるコレクションが Mongo にあります。これらのアイテムをテンプレートのパブリッシュ/サブスクライブを介してフロントエンドに表示していますが、ボリュームが多いため、リストが頻繁に更新され、読みにくいです。私が望むのは、リストを(数)秒ごとに更新することだけです。たとえばここに示されているように、クライアント側とサーバー側の両方でスリープ/タイムアウトを使用しようとしましたが、これまでのところ成功していません。

  • パブリッシュ/サブスクライブを引き続き使用できますか、それとも Meteor.setInterval でポーリング メカニズムを切り替える必要がありますか?
  • 時間間隔部分はパブリッシュ側に置くべきですか、それともサブスクライブ側に置くべきですか?
  • パブリッシュ/サブスクライブがシナリオに適している場合、更新されたデータのみを数秒ごとに表示するにはどうすればよいですか?
4

2 に答える 2

1

DDP にはレート リミッタがあります。DDoS 攻撃を打ち負かすことを目的としていますが、必要に応じて再利用できると思います。

https://blog.meteor.com/rate-limiting-in-meteor-core-762b8ad2412f#.nw6fwlhji

于 2017-01-03T13:41:48.203 に答える
-1

これを行うには、リアクティブ変数と自動実行を 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)
});
)};

コレクションが大きくなった場合は、出版物を制限してこれを行うことをお勧めしますか?

于 2017-01-04T10:37:37.737 に答える