2017-01-10 6 views
2

サーバ側レンダリング(SSR)コンテキストでgunを使用して実験していて、mapコールバックで重複アイテムを受信し始めたことに気づきました。重複カウントはnで、nはページをリフレッシュした回数です。"map"がノードを何度も返すと予想されますか?

私はちょっと覗き込みをして、私のサーバーへのリクエストごとにgunインスタンスを生成していることに気付きました。だから、基本的に新しいピアがすべての要求に対して作成されていたので、mapはネットワーク内の各peerの各ノードの複製を返していました。

これが期待どおりの動作ですか?

答えて

1

デフォルトでは、gunはピアツーピア(P2P)です。つまり、すべてのピア(他のピアを介して接続されているピアまで)が要求に応答しようとします。

なぜですか?集中型サーバーを稼働していない場合(銃で行うことはできますが、必要はありません)、1人のピアが必要な最新のデータまたはすべてのデータを持っていると応答するという保証はありません。

しかし、正しいですが、すべてのサーバー要求に対して新しい銃のデータベースインスタンスを作成する必要はありません。これは質問に答えますか?

注:mapは、テーブルとアイテム(追加されたもの)をサブスクライブします。そのマップがテーブル/リスト内のすべてのアイテムに対して呼び出されることを意味します(将来も追加されます)。アイテムが更新されると、そのアイテムだけが再び呼び出されます。

各アイテムを一度だけ取得したい場合は、map().val(cb)を追加します。ただし、追加される新しいアイテムは引き続き呼び出されます。各項目だけ、一度だけ。

関連する問題