9

meteor サーバーとリモート mongodb インスタンスの間の接続が遅いようです。サーバーがmongoへの接続を確立するまで、クライアント側で何らかの形で待機し、サブスクリプションを登録しないことはできますか?

4

2 に答える 2

2

これを行う最も信頼できる方法は、Meteor.call呼び出しを使用することです。これを同期呼び出し(コールバックなし)として行う場合、クライアントは呼び出しが完了するまで待機します。非同期で行う方法は次のとおりです。

  Meteor.call('isEverythingReady', param1,
    function(error, result) {
      if (error === undefined) {
        Meteor.subscribe("mystuff");
        Session.set("sess1", "whatever");
      } else {
        alert("There was an error during startup.");
      }
    });

その後

if (Meteor.isServer) {
  Meteor.methods( {
    isEverythingReady: function(param1) {
      // can you connect to database?
      return true;
    }
  }
}
于 2012-12-06T11:09:57.490 に答える
2

これを行う原始的な方法の 1 つは、Meteor.autorun を使用して Meteor.userId() の変更をリッスンすることです。これを取得できれば、MongoDB に接続したことがわかります。認証を扱っていない場合は、サーバー側で MongoDB から何かを返すメソッドを作成できます。何かを返すと、クライアント側で成功すると、すべてのサブスクリプションを開始できます。

于 2012-12-06T09:17:31.843 に答える