1

基本的に、ユーザーがログインしたときにバックグラウンド プロセスを開始する必要があります。バックグラウンド プロセスは機密データを返します。サーバー側はそれをさらに処理し、クライアントで利用できるようにする必要があります。

ここで Meteor.Publish メソッドと Subscribe メソッドが登場しますか? または、Meteor.methodsを使用する必要がありますか? 他のアプローチはありますか?

4

1 に答える 1

3

このような場合は、発行の代わりに呼び出しを使用することをお勧めします。これは、パブリッシュ機能の使用例が、ユーザーが何を見るべきかを決定するためのものであり、実際にはデータを処理すること (つまり、Web スクレイプなどを実行してこれを収集すること) ではなく、プロセスがブロックされている可能性があるため、すべてのクライアントが待機する可能性があるためです。このタスクを終了します。

隕石に移行することをお勧めします: https://github.com/oortcloud/meteorite

npm install -g meteorite

これで、 http://atmosphere.meteor.comにある素晴らしいコミュニティ パッケージのコレクションにアクセスできるようになります。

Ted Blackman のevent-horizo​​nパッケージを使用すると、ユーザーがクライアントにログインしたときにイベントを作成できます。

次に、このためのイベントを作成できます。

クライアントJS

EventHorizon.fireWhenTrue('loggedIn',function(){
  return Meteor.userId() !== null;
});

EventHorizon.on('loggedIn',function(){
  Meteor.call("userloggedin", function(err,result) {
      console.log("Ready")
      if(result) {
          //do stuff that you wanted after the task is complete
      }
  }
});

サーバーjs

Meteor.methods({
    'userloggedin' : function() { 
        this.unblock(); //unblocks the thread for long tasks
        //Do your stuff to Meteor.user();
        return true; //Tell the client the task is done.
    }
});
于 2013-03-23T07:39:04.777 に答える